stormpath-sdk 1.3.0 → 1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
|