stormpath-sdk 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rspec +1 -0
- data/.travis.yml +0 -3
- data/CHANGES.md +9 -0
- data/README.md +8 -21
- data/Rakefile +1 -15
- data/lib/stormpath-sdk/oauth/error.rb +21 -0
- data/lib/stormpath-sdk/oauth/local_access_token_verification.rb +2 -2
- data/lib/stormpath-sdk/oauth/remote_access_token_verification.rb +2 -2
- data/lib/stormpath-sdk/version.rb +2 -2
- data/spec/auth/http_basic_authentication_spec.rb +6 -21
- data/spec/auth/http_bearer_authentication_spec.rb +11 -24
- data/spec/client_spec.rb +116 -258
- data/spec/oauth/access_token_authentication_result_spec.rb +14 -14
- data/spec/provider/provider_spec.rb +32 -40
- data/spec/resource/account_creation_policy_spec.rb +8 -13
- data/spec/resource/account_link_spec.rb +4 -17
- data/spec/resource/account_spec.rb +37 -81
- data/spec/resource/account_store_mapping_spec.rb +20 -32
- data/spec/resource/account_store_spec.rb +8 -31
- data/spec/resource/api_key_spec.rb +11 -14
- data/spec/resource/application_spec.rb +39 -168
- data/spec/resource/collection_spec.rb +17 -17
- data/spec/resource/custom_data_spec.rb +2 -2
- data/spec/resource/directory_spec.rb +164 -240
- data/spec/resource/email_template_spec.rb +21 -24
- data/spec/resource/group_membership_spec.rb +9 -12
- data/spec/resource/group_spec.rb +17 -31
- data/spec/resource/linked_account_spec.rb +4 -17
- data/spec/resource/organization_spec.rb +38 -110
- data/spec/resource/password_policy_spec.rb +13 -16
- data/spec/resource/password_strength_spec.rb +15 -18
- data/spec/resource/status_spec.rb +32 -35
- data/spec/spec_helper.rb +8 -139
- data/spec/support/api_key_helpers.rb +34 -0
- data/spec/support/custom_data_storage_behavior.rb +139 -156
- data/spec/support/env_names_warning.rb +59 -0
- data/spec/support/resource_helpers.rb +84 -0
- data/spec/support/resource_matchers.rb +6 -0
- data/stormpath-sdk.gemspec +1 -0
- metadata +20 -3
- data/support/api.rb +0 -55
@@ -1,22 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Stormpath::Resource::AccountStoreMapping, :vcr do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
application: application,
|
8
|
-
account_store: account_store,
|
9
|
-
list_index: options[:list_index] || 0,
|
10
|
-
is_default_account_store: options[:is_default_account_store] || false,
|
11
|
-
is_default_group_store: options[:is_default_group_store] || false
|
12
|
-
})
|
13
|
-
end
|
14
|
-
|
15
|
-
let(:directory_name) { random_directory_name }
|
16
|
-
|
17
|
-
let(:directory) { test_api_client.directories.create name: directory_name, description: 'testDirectory for AccountStoreMappings' }
|
18
|
-
|
19
|
-
let(:application) { test_api_client.applications.create name: random_application_name, description: 'testApplication for AccountStoreMappings' }
|
4
|
+
let(:directory_name) { 'rubysdktestdir' }
|
5
|
+
let(:directory) { test_api_client.directories.create(build_directory(name: directory_name)) }
|
6
|
+
let(:application) { test_api_client.applications.create(build_application) }
|
20
7
|
|
21
8
|
after do
|
22
9
|
application.delete if application
|
@@ -24,7 +11,9 @@ describe Stormpath::Resource::AccountStoreMapping, :vcr do
|
|
24
11
|
end
|
25
12
|
|
26
13
|
describe "instances" do
|
27
|
-
let(:account_store_mapping)
|
14
|
+
let!(:account_store_mapping) do
|
15
|
+
map_account_store(application, directory, 0, true, false)
|
16
|
+
end
|
28
17
|
|
29
18
|
it do
|
30
19
|
[:list_index, :is_default_account_store, :is_default_group_store, :default_account_store, :default_group_store ].each do |prop_accessor|
|
@@ -51,7 +40,7 @@ describe Stormpath::Resource::AccountStoreMapping, :vcr do
|
|
51
40
|
|
52
41
|
|
53
42
|
describe 'given an application' do
|
54
|
-
let(:reloaded_application) { test_api_client.applications.get application.href}
|
43
|
+
let(:reloaded_application) { test_api_client.applications.get application.href }
|
55
44
|
|
56
45
|
context 'on application creation' do
|
57
46
|
it 'there should be no default account/group store' do
|
@@ -61,33 +50,33 @@ describe Stormpath::Resource::AccountStoreMapping, :vcr do
|
|
61
50
|
end
|
62
51
|
|
63
52
|
it 'should retrive a default account store mapping one is created' do
|
64
|
-
account_store_mapping =
|
53
|
+
account_store_mapping = map_account_store(application, directory, 0, true, true)
|
65
54
|
expect(reloaded_application.default_account_store_mapping).to eq(account_store_mapping)
|
66
55
|
end
|
67
56
|
|
68
57
|
it 'should retrive a default group store mapping when one is created' do
|
69
|
-
account_store_mapping =
|
58
|
+
account_store_mapping = map_account_store(application, directory, 0, true, true)
|
70
59
|
expect(reloaded_application.default_group_store_mapping).to eq(account_store_mapping)
|
71
60
|
end
|
72
61
|
|
73
62
|
it 'change the default account store mapping, the application needs to be reloaded' do
|
74
|
-
account_store_mapping =
|
63
|
+
account_store_mapping = map_account_store(application, directory, 0, true, false)
|
75
64
|
expect(application.default_account_store_mapping).to eq(nil)
|
76
65
|
expect(reloaded_application.default_account_store_mapping).to eq(account_store_mapping)
|
77
66
|
end
|
78
67
|
|
79
68
|
it 'change the default group store mapping, the application needs to be reloaded' do
|
80
|
-
account_store_mapping =
|
69
|
+
account_store_mapping = map_account_store(application, directory, 0, true, true)
|
81
70
|
expect(application.default_group_store_mapping).to eq(nil)
|
82
71
|
expect(reloaded_application.default_group_store_mapping).to eq(account_store_mapping)
|
83
72
|
end
|
84
73
|
|
85
74
|
context 'remove the added default account/group store mapping' do
|
86
|
-
let(:re_reloaded_application) { test_api_client.applications.get application.href}
|
75
|
+
let(:re_reloaded_application) { test_api_client.applications.get application.href }
|
87
76
|
|
88
77
|
it 'there should not be a default account store mapping in the beginning and the end' do
|
89
78
|
expect(application.default_account_store_mapping).to eq(nil)
|
90
|
-
account_store_mapping =
|
79
|
+
account_store_mapping = map_account_store(application, directory, 0, true, false)
|
91
80
|
|
92
81
|
expect(application.default_account_store_mapping).to eq(nil)
|
93
82
|
expect(reloaded_application.default_account_store_mapping).to eq(account_store_mapping)
|
@@ -102,7 +91,7 @@ describe Stormpath::Resource::AccountStoreMapping, :vcr do
|
|
102
91
|
|
103
92
|
it 'there should not be a default group store mapping in the beginning and the end' do
|
104
93
|
expect(application.default_account_store_mapping).to eq(nil)
|
105
|
-
account_store_mapping =
|
94
|
+
account_store_mapping = map_account_store(application, directory, 0, false, true)
|
106
95
|
|
107
96
|
expect(application.default_group_store_mapping).to eq(nil)
|
108
97
|
expect(reloaded_application.default_group_store_mapping).to eq(account_store_mapping)
|
@@ -119,7 +108,7 @@ describe Stormpath::Resource::AccountStoreMapping, :vcr do
|
|
119
108
|
end
|
120
109
|
|
121
110
|
describe "given a directory" do
|
122
|
-
before {
|
111
|
+
before { map_account_store(application, directory, 0, false, false) }
|
123
112
|
|
124
113
|
it 'add an account store mapping' do
|
125
114
|
expect(application.account_store_mappings.count).to eq(1)
|
@@ -127,7 +116,7 @@ describe Stormpath::Resource::AccountStoreMapping, :vcr do
|
|
127
116
|
end
|
128
117
|
|
129
118
|
describe "given a group" do
|
130
|
-
let(:group) { directory.groups.create
|
119
|
+
let(:group) { directory.groups.create(build_group) }
|
131
120
|
let(:reloaded_application) { test_api_client.applications.get application.href }
|
132
121
|
|
133
122
|
after do
|
@@ -136,7 +125,7 @@ describe Stormpath::Resource::AccountStoreMapping, :vcr do
|
|
136
125
|
|
137
126
|
context 'add an account store mapping' do
|
138
127
|
it 'being a default account store' do
|
139
|
-
account_store_mapping =
|
128
|
+
account_store_mapping = map_account_store(application, group, 0, true, false)
|
140
129
|
expect(application.default_account_store_mapping).to eq(nil)
|
141
130
|
expect(application.account_store_mappings.count).to eq(1)
|
142
131
|
expect(reloaded_application.default_account_store_mapping).to eq(account_store_mapping)
|
@@ -144,7 +133,7 @@ describe Stormpath::Resource::AccountStoreMapping, :vcr do
|
|
144
133
|
|
145
134
|
it 'being a default group store, should raise an error' do
|
146
135
|
expect do
|
147
|
-
|
136
|
+
map_account_store(application, group, 0, false, true)
|
148
137
|
end.to raise_error Stormpath::Error
|
149
138
|
end
|
150
139
|
|
@@ -153,7 +142,7 @@ describe Stormpath::Resource::AccountStoreMapping, :vcr do
|
|
153
142
|
end
|
154
143
|
|
155
144
|
describe "update attribute default_group_store" do
|
156
|
-
let(:account_store_mapping) {
|
145
|
+
let(:account_store_mapping) { map_account_store(application, directory, 0, true, false) }
|
157
146
|
let(:reloaded_mapping){ application.account_store_mappings.get account_store_mapping.href }
|
158
147
|
|
159
148
|
it 'should go from true to false' do
|
@@ -165,7 +154,7 @@ describe Stormpath::Resource::AccountStoreMapping, :vcr do
|
|
165
154
|
end
|
166
155
|
|
167
156
|
describe "given a mapping" do
|
168
|
-
let!(:account_store_mapping) {
|
157
|
+
let!(:account_store_mapping) { map_account_store(application, directory, 0, true, false) }
|
169
158
|
let(:reloaded_application) { test_api_client.applications.get application.href}
|
170
159
|
|
171
160
|
it 'function delete should destroy it' do
|
@@ -183,5 +172,4 @@ describe Stormpath::Resource::AccountStoreMapping, :vcr do
|
|
183
172
|
end
|
184
173
|
end
|
185
174
|
end
|
186
|
-
|
187
175
|
end
|
@@ -1,33 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Stormpath::Resource::AccountStore, :vcr do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
list_index: 0,
|
9
|
-
is_default_account_store: true,
|
10
|
-
is_default_group_store: is_default_group_store
|
11
|
-
)
|
12
|
-
end
|
13
|
-
|
14
|
-
let(:application) do
|
15
|
-
test_api_client.applications.create name: random_application_name,
|
16
|
-
description: 'testApplication for AccountStoreMappings'
|
17
|
-
end
|
18
|
-
|
19
|
-
let(:directory) do
|
20
|
-
test_api_client.directories.create name: random_directory_name,
|
21
|
-
description: 'testDirectory for AccountStoreMappings'
|
22
|
-
end
|
23
|
-
|
24
|
-
let(:group) do
|
25
|
-
directory.groups.create name: 'testGroup', description: 'testGroup for AccountStoreMappings'
|
26
|
-
end
|
27
|
-
|
28
|
-
let(:organization) do
|
29
|
-
test_api_client.organizations.create name: 'testOrganization', name_key: 'test-organization'
|
30
|
-
end
|
4
|
+
let(:application) { test_api_client.applications.create(build_application) }
|
5
|
+
let(:directory) { test_api_client.directories.create(build_directory) }
|
6
|
+
let(:group) { directory.groups.create(build_group) }
|
7
|
+
let(:organization) { test_api_client.organizations.create(build_organization) }
|
31
8
|
|
32
9
|
after do
|
33
10
|
application.delete if application
|
@@ -37,7 +14,7 @@ describe Stormpath::Resource::AccountStore, :vcr do
|
|
37
14
|
end
|
38
15
|
|
39
16
|
describe 'given an account_store_mapping and a directory' do
|
40
|
-
let!(:account_store_mapping) {
|
17
|
+
let!(:account_store_mapping) { map_account_store(application, directory, 0, true, true) }
|
41
18
|
let(:reloaded_mapping) { application.account_store_mappings.get account_store_mapping.href }
|
42
19
|
|
43
20
|
it 'should return a directory' do
|
@@ -47,7 +24,7 @@ describe Stormpath::Resource::AccountStore, :vcr do
|
|
47
24
|
end
|
48
25
|
|
49
26
|
describe 'given an account_store_mapping and a group' do
|
50
|
-
let!(:account_store_mapping) {
|
27
|
+
let!(:account_store_mapping) { map_account_store(application, group, 0, true, false) }
|
51
28
|
let(:reloaded_mapping) { application.account_store_mappings.get account_store_mapping.href }
|
52
29
|
|
53
30
|
it 'should return a group' do
|
@@ -57,7 +34,7 @@ describe Stormpath::Resource::AccountStore, :vcr do
|
|
57
34
|
end
|
58
35
|
|
59
36
|
describe 'given an account_store_mapping and an organization' do
|
60
|
-
let!(:account_store_mapping) {
|
37
|
+
let!(:account_store_mapping) { map_account_store(application, organization, 0, true, false) }
|
61
38
|
let(:reloaded_mapping) { application.account_store_mappings.get account_store_mapping.href }
|
62
39
|
|
63
40
|
it 'should return an organization' do
|
@@ -69,7 +46,7 @@ describe Stormpath::Resource::AccountStore, :vcr do
|
|
69
46
|
describe 'given an undefined account_store_mapping' do
|
70
47
|
it 'should raise an error' do
|
71
48
|
expect do
|
72
|
-
|
49
|
+
map_account_store(application, 'undefined', 0, true, false)
|
73
50
|
end.to raise_error
|
74
51
|
end
|
75
52
|
end
|
@@ -1,23 +1,20 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Stormpath::Resource::ApiKey, :vcr do
|
4
|
-
let(:application) {
|
4
|
+
let(:application) { test_api_client.applications.create(build_application) }
|
5
|
+
let(:directory) { test_api_client.directories.create(build_directory) }
|
5
6
|
let(:tenant) { application.tenant }
|
6
|
-
|
7
|
-
let(:account) do
|
8
|
-
application.accounts.create(
|
9
|
-
email: 'test@example.com',
|
10
|
-
given_name: 'Ruby SDK',
|
11
|
-
password: 'P@$$w0rd',
|
12
|
-
surname: 'SDK'
|
13
|
-
)
|
14
|
-
end
|
15
|
-
|
7
|
+
let(:account) { application.accounts.create(build_account) }
|
16
8
|
let(:api_key) { account.api_keys.create({}) }
|
9
|
+
before { map_account_store(application, directory, 1, true, false) }
|
17
10
|
|
18
|
-
after
|
11
|
+
after do
|
12
|
+
application.delete
|
13
|
+
directory.delete
|
14
|
+
account.delete
|
15
|
+
end
|
19
16
|
|
20
|
-
describe
|
17
|
+
describe 'instances should respond to attribute property methods' do
|
21
18
|
it do
|
22
19
|
[:name, :description, :status].each do |property_accessor|
|
23
20
|
expect(api_key).to respond_to(property_accessor)
|
@@ -26,7 +23,7 @@ describe Stormpath::Resource::ApiKey, :vcr do
|
|
26
23
|
|
27
24
|
[:id, :secret].each do |property_getter|
|
28
25
|
expect(api_key).to respond_to(property_getter)
|
29
|
-
expect(api_key.send
|
26
|
+
expect(api_key.send(property_getter)).to be_a String
|
30
27
|
end
|
31
28
|
|
32
29
|
expect(api_key.tenant).to be_a Stormpath::Resource::Tenant
|
@@ -2,14 +2,12 @@ require 'spec_helper'
|
|
2
2
|
include UUIDTools
|
3
3
|
|
4
4
|
describe Stormpath::Resource::Application, :vcr do
|
5
|
-
let(:app) { test_api_client.applications.create
|
5
|
+
let(:app) { test_api_client.applications.create(build_application) }
|
6
6
|
let(:application) { test_api_client.applications.get app.href }
|
7
|
-
let(:directory) { test_api_client.directories.create
|
8
|
-
let(:directory_with_verification) { test_directory_with_verification }
|
7
|
+
let(:directory) { test_api_client.directories.create(build_directory) }
|
9
8
|
|
10
9
|
before do
|
11
|
-
|
12
|
-
list_index: 1, is_default_account_store: true, is_default_group_store: true })
|
10
|
+
map_account_store(app, directory, 1, true, true)
|
13
11
|
end
|
14
12
|
|
15
13
|
after do
|
@@ -69,7 +67,7 @@ describe Stormpath::Resource::Application, :vcr do
|
|
69
67
|
describe 'application_associations' do
|
70
68
|
|
71
69
|
context '#accounts' do
|
72
|
-
let(:account) { application.accounts.create
|
70
|
+
let(:account) { application.accounts.create(build_account) }
|
73
71
|
|
74
72
|
after do
|
75
73
|
account.delete if account
|
@@ -86,11 +84,9 @@ describe Stormpath::Resource::Application, :vcr do
|
|
86
84
|
end
|
87
85
|
|
88
86
|
context '#groups' do
|
89
|
-
let(:group) { application.groups.create
|
87
|
+
let(:group) { application.groups.create(build_group) }
|
90
88
|
|
91
|
-
after
|
92
|
-
group.delete if group
|
93
|
-
end
|
89
|
+
after { group.delete }
|
94
90
|
|
95
91
|
it 'should be able to create a group' do
|
96
92
|
expect(application.groups).to include(group)
|
@@ -118,15 +114,7 @@ describe Stormpath::Resource::Application, :vcr do
|
|
118
114
|
|
119
115
|
|
120
116
|
describe '#create_account' do
|
121
|
-
let(:account)
|
122
|
-
Stormpath::Resource::Account.new({
|
123
|
-
email: random_email,
|
124
|
-
given_name: 'Ruby SDK',
|
125
|
-
password: 'P@$$w0rd',
|
126
|
-
surname: 'SDK',
|
127
|
-
username: random_user_name
|
128
|
-
})
|
129
|
-
end
|
117
|
+
let(:account) { Stormpath::Resource::Account.new(build_account) }
|
130
118
|
|
131
119
|
context 'with registration workflow' do
|
132
120
|
it 'creates an account with worflow enabled' do
|
@@ -209,10 +197,8 @@ describe Stormpath::Resource::Application, :vcr do
|
|
209
197
|
end
|
210
198
|
|
211
199
|
context 'given a wrong directory' do
|
212
|
-
let(:new_directory) { test_api_client.directories.create
|
213
|
-
|
200
|
+
let(:new_directory) { test_api_client.directories.create(build_directory) }
|
214
201
|
let(:account) { new_directory.accounts.create build_account(password: 'P@$$w0rd') }
|
215
|
-
|
216
202
|
let(:login_request) do
|
217
203
|
Stormpath::Authentication::UsernamePasswordRequest.new account.username, password, account_store: directory
|
218
204
|
end
|
@@ -227,7 +213,7 @@ describe Stormpath::Resource::Application, :vcr do
|
|
227
213
|
end
|
228
214
|
|
229
215
|
context 'given a group' do
|
230
|
-
let(:group) {directory.groups.create
|
216
|
+
let(:group) {directory.groups.create(build_group) }
|
231
217
|
|
232
218
|
let(:account) { directory.accounts.create build_account(password: 'P@$$w0rd') }
|
233
219
|
|
@@ -236,7 +222,7 @@ describe Stormpath::Resource::Application, :vcr do
|
|
236
222
|
end
|
237
223
|
|
238
224
|
before do
|
239
|
-
|
225
|
+
map_account_store(application, group, 0, true, false)
|
240
226
|
end
|
241
227
|
|
242
228
|
after do
|
@@ -276,12 +262,7 @@ describe Stormpath::Resource::Application, :vcr do
|
|
276
262
|
|
277
263
|
context 'of an existing account not mapped to the application' do
|
278
264
|
let(:account) { other_directory.accounts.create build_account }
|
279
|
-
|
280
|
-
let(:other_directory) do
|
281
|
-
test_api_client.directories.create(
|
282
|
-
name: random_directory_name('password_reset_account_store_href')
|
283
|
-
)
|
284
|
-
end
|
265
|
+
let(:other_directory) { test_api_client.directories.create(build_directory) }
|
285
266
|
|
286
267
|
after do
|
287
268
|
account.delete
|
@@ -337,13 +318,7 @@ describe Stormpath::Resource::Application, :vcr do
|
|
337
318
|
|
338
319
|
context 'of an existing account not mapped to the application with an account store href' do
|
339
320
|
let(:account) { directory.accounts.create build_account }
|
340
|
-
|
341
|
-
let(:other_directory) do
|
342
|
-
test_api_client.directories.create(
|
343
|
-
name: random_directory_name('password_reset_account_store_href'),
|
344
|
-
description: 'abc'
|
345
|
-
)
|
346
|
-
end
|
321
|
+
let(:other_directory) { test_api_client.directories.create(build_directory) }
|
347
322
|
|
348
323
|
after do
|
349
324
|
account.delete
|
@@ -373,22 +348,17 @@ describe Stormpath::Resource::Application, :vcr do
|
|
373
348
|
|
374
349
|
context 'of an existing account on the application with a right account store organization namekey' do
|
375
350
|
let(:account) { account_directory.accounts.create build_account }
|
376
|
-
|
377
|
-
let(:account_directory) do
|
378
|
-
test_api_client.directories.create(
|
379
|
-
name: random_directory_name('password_reset_account_store_href')
|
380
|
-
)
|
381
|
-
end
|
351
|
+
let(:account_directory) { test_api_client.directories.create(build_directory) }
|
382
352
|
|
383
353
|
let(:reloaded_account_directory) do
|
384
354
|
test_api_client.directories.get(account_directory.href)
|
385
355
|
end
|
386
356
|
|
387
|
-
let(:organization_name_key) {
|
357
|
+
let(:organization_name_key) { 'ruby-test-org-name-key' }
|
388
358
|
|
389
359
|
let(:organization) do
|
390
360
|
test_api_client.organizations.create(
|
391
|
-
name: "
|
361
|
+
name: "ruby_test_organization_name",
|
392
362
|
name_key: organization_name_key
|
393
363
|
)
|
394
364
|
end
|
@@ -404,12 +374,8 @@ describe Stormpath::Resource::Application, :vcr do
|
|
404
374
|
end
|
405
375
|
|
406
376
|
before do
|
407
|
-
|
408
|
-
|
409
|
-
organization: { href: organization.href }
|
410
|
-
)
|
411
|
-
|
412
|
-
test_api_client.account_store_mappings.create(application: application, account_store: organization)
|
377
|
+
map_organization_store(account_directory, organization)
|
378
|
+
map_account_store(application, organization, 0, true, true)
|
413
379
|
end
|
414
380
|
|
415
381
|
it 'sends a password reset request of the account' do
|
@@ -421,26 +387,11 @@ describe Stormpath::Resource::Application, :vcr do
|
|
421
387
|
|
422
388
|
context 'of an existing account on the application with a right account store organization resource object' do
|
423
389
|
let(:account) { account_directory.accounts.create build_account }
|
424
|
-
|
425
|
-
let(:account_directory) do
|
426
|
-
test_api_client.directories.create(
|
427
|
-
name: random_directory_name('password_reset_account_store_href')
|
428
|
-
)
|
429
|
-
end
|
430
|
-
|
390
|
+
let(:account_directory) { test_api_client.directories.create(build_directory) }
|
431
391
|
let(:reloaded_account_directory) do
|
432
392
|
test_api_client.directories.get(account_directory.href)
|
433
393
|
end
|
434
|
-
|
435
|
-
let(:organization_name_key) { "#{random_string}-org-name-key" }
|
436
|
-
|
437
|
-
let(:organization) do
|
438
|
-
test_api_client.organizations.create(
|
439
|
-
name: "#{random_string}_organization_name",
|
440
|
-
name_key: organization_name_key
|
441
|
-
)
|
442
|
-
end
|
443
|
-
|
394
|
+
let(:organization) { test_api_client.organizations.create(build_organization) }
|
444
395
|
let(:sent_to_account) do
|
445
396
|
application.send_password_reset_email(account.email, account_store: organization)
|
446
397
|
end
|
@@ -452,12 +403,8 @@ describe Stormpath::Resource::Application, :vcr do
|
|
452
403
|
end
|
453
404
|
|
454
405
|
before do
|
455
|
-
|
456
|
-
|
457
|
-
organization: { href: organization.href }
|
458
|
-
)
|
459
|
-
|
460
|
-
test_api_client.account_store_mappings.create(application: application, account_store: organization)
|
406
|
+
map_organization_store(account_directory, organization)
|
407
|
+
map_account_store(application, organization, 0, true, true)
|
461
408
|
end
|
462
409
|
|
463
410
|
it 'sends a password reset request of the account' do
|
@@ -469,34 +416,12 @@ describe Stormpath::Resource::Application, :vcr do
|
|
469
416
|
|
470
417
|
context 'of an existing account on the application with a wrong account store organization namekey' do
|
471
418
|
let(:account) { account_directory.accounts.create build_account }
|
472
|
-
|
473
|
-
let(:account_directory) do
|
474
|
-
test_api_client.directories.create(
|
475
|
-
name: random_directory_name('password_reset_account_store_href')
|
476
|
-
)
|
477
|
-
end
|
478
|
-
|
419
|
+
let(:account_directory) { test_api_client.directories.create(build_directory) }
|
479
420
|
let(:reloaded_account_directory) do
|
480
421
|
test_api_client.directories.get(account_directory.href)
|
481
422
|
end
|
482
|
-
|
483
|
-
let(:
|
484
|
-
|
485
|
-
let(:other_organization_name_key) { "#{random_string}-other-org-name-key" }
|
486
|
-
|
487
|
-
let(:organization) do
|
488
|
-
test_api_client.organizations.create(
|
489
|
-
name: "#{random_string}_organization_name",
|
490
|
-
name_key: organization_name_key
|
491
|
-
)
|
492
|
-
end
|
493
|
-
|
494
|
-
let(:other_organization) do
|
495
|
-
test_api_client.organizations.create(
|
496
|
-
name: "#{random_string}_other_organization_name",
|
497
|
-
name_key: other_organization_name_key
|
498
|
-
)
|
499
|
-
end
|
423
|
+
let(:organization) { test_api_client.organizations.create(build_organization) }
|
424
|
+
let(:other_organization) { test_api_client.organizations.create(build_organization) }
|
500
425
|
|
501
426
|
after do
|
502
427
|
account.delete
|
@@ -506,12 +431,8 @@ describe Stormpath::Resource::Application, :vcr do
|
|
506
431
|
end
|
507
432
|
|
508
433
|
before do
|
509
|
-
|
510
|
-
|
511
|
-
organization: { href: organization.href }
|
512
|
-
)
|
513
|
-
|
514
|
-
test_api_client.account_store_mappings.create(application: application, account_store: organization)
|
434
|
+
map_organization_store(account_directory, organization)
|
435
|
+
map_account_store(application, organization, 0, true, true)
|
515
436
|
end
|
516
437
|
|
517
438
|
it 'sends a password reset request of the account' do
|
@@ -524,29 +445,21 @@ describe Stormpath::Resource::Application, :vcr do
|
|
524
445
|
end
|
525
446
|
|
526
447
|
describe '#verification_emails' do
|
527
|
-
let(:directory_with_verification) {
|
448
|
+
let(:directory_with_verification) { test_api_client.directories.create(build_directory) }
|
528
449
|
|
529
450
|
before do
|
530
|
-
|
531
|
-
|
532
|
-
end
|
533
|
-
|
534
|
-
let(:account) do
|
535
|
-
directory_with_verification.accounts.create({
|
536
|
-
email: random_email,
|
537
|
-
given_name: 'Ruby SDK',
|
538
|
-
password: 'P@$$w0rd',
|
539
|
-
surname: 'SDK',
|
540
|
-
username: random_user_name
|
541
|
-
})
|
451
|
+
map_account_store(application, directory_with_verification, 1, false, false)
|
452
|
+
enable_email_verification(directory_with_verification)
|
542
453
|
end
|
543
454
|
|
455
|
+
let(:account) { directory_with_verification.accounts.create(build_account) }
|
544
456
|
let(:verification_emails) do
|
545
457
|
application.verification_emails.create(login: account.email)
|
546
458
|
end
|
547
459
|
|
548
460
|
after do
|
549
461
|
account.delete if account
|
462
|
+
directory_with_verification.delete
|
550
463
|
end
|
551
464
|
|
552
465
|
it 'returns verification email' do
|
@@ -555,15 +468,7 @@ describe Stormpath::Resource::Application, :vcr do
|
|
555
468
|
end
|
556
469
|
|
557
470
|
describe 'create_login_attempt' do
|
558
|
-
let(:account)
|
559
|
-
directory.accounts.create({
|
560
|
-
email: random_email,
|
561
|
-
given_name: 'Ruby SDK',
|
562
|
-
password: 'P@$$w0rd',
|
563
|
-
surname: 'SDK',
|
564
|
-
username: random_user_name
|
565
|
-
})
|
566
|
-
end
|
471
|
+
let(:account) { directory.accounts.create(build_account) }
|
567
472
|
|
568
473
|
context 'valid credentials' do
|
569
474
|
let(:username_password_request) do
|
@@ -585,30 +490,16 @@ describe Stormpath::Resource::Application, :vcr do
|
|
585
490
|
end
|
586
491
|
|
587
492
|
context 'with organization as account store option' do
|
588
|
-
def create_organization_account_store_mapping(organization, account_store)
|
589
|
-
test_api_client.organization_account_store_mappings.create({
|
590
|
-
account_store: { href: account_store.href },
|
591
|
-
organization: { href: organization.href }
|
592
|
-
})
|
593
|
-
end
|
594
|
-
|
595
|
-
def create_application_account_store_mapping(application, account_store)
|
596
|
-
test_api_client.account_store_mappings.create(
|
597
|
-
application: application,
|
598
|
-
account_store: account_store
|
599
|
-
)
|
600
|
-
end
|
601
|
-
|
602
493
|
let(:organization) do
|
603
|
-
test_api_client.organizations.create
|
604
|
-
|
494
|
+
test_api_client.organizations.create(name: 'test_organization',
|
495
|
+
name_key: 'testorganization')
|
605
496
|
end
|
606
497
|
|
607
498
|
let(:auth_request) { application.authenticate_account(username_password_request) }
|
608
499
|
|
609
500
|
before do
|
610
|
-
|
611
|
-
|
501
|
+
map_organization_store(directory, organization)
|
502
|
+
map_account_store(application, organization, 0, true, false)
|
612
503
|
end
|
613
504
|
|
614
505
|
after do
|
@@ -739,20 +630,10 @@ describe Stormpath::Resource::Application, :vcr do
|
|
739
630
|
end
|
740
631
|
|
741
632
|
describe '#verify_password_reset_token' do
|
742
|
-
let(:account)
|
743
|
-
directory.accounts.create({
|
744
|
-
email: random_email,
|
745
|
-
given_name: 'Ruby SDK',
|
746
|
-
password: 'P@$$w0rd',
|
747
|
-
surname: 'SDK',
|
748
|
-
username: random_user_name
|
749
|
-
})
|
750
|
-
end
|
751
|
-
|
633
|
+
let(:account) { directory.accounts.create(build_account) }
|
752
634
|
let(:password_reset_token) do
|
753
635
|
application.password_reset_tokens.create(email: account.email).token
|
754
636
|
end
|
755
|
-
|
756
637
|
let(:reset_password_account) do
|
757
638
|
application.verify_password_reset_token password_reset_token
|
758
639
|
end
|
@@ -785,8 +666,6 @@ describe Stormpath::Resource::Application, :vcr do
|
|
785
666
|
Stormpath::Authentication::UsernamePasswordRequest.new account.username, new_password
|
786
667
|
end
|
787
668
|
|
788
|
-
let(:expected_email) { 'test2@example.com' }
|
789
|
-
|
790
669
|
let(:authentication_result) do
|
791
670
|
application.authenticate_account login_request
|
792
671
|
end
|
@@ -1095,16 +974,8 @@ describe Stormpath::Resource::Application, :vcr do
|
|
1095
974
|
end
|
1096
975
|
|
1097
976
|
before do
|
1098
|
-
|
1099
|
-
|
1100
|
-
account_store: organization
|
1101
|
-
)
|
1102
|
-
|
1103
|
-
test_api_client.organization_account_store_mappings.create(
|
1104
|
-
account_store: { href: account_directory.href },
|
1105
|
-
organization: { href: organization.href }
|
1106
|
-
)
|
1107
|
-
|
977
|
+
map_account_store(application, organization, 0, true, true)
|
978
|
+
map_organization_store(account_directory, organization)
|
1108
979
|
account_directory.accounts.create account_data
|
1109
980
|
end
|
1110
981
|
|