auth0 4.0.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +2 -1
  4. data/.rubocop_todo.yml +0 -2
  5. data/.travis.yml +4 -2
  6. data/CHANGELOG.md +40 -38
  7. data/DEPLOYMENT.md +5 -0
  8. data/Gemfile +1 -1
  9. data/README.md +20 -2
  10. data/Rakefile +1 -1
  11. data/auth0.gemspec +4 -3
  12. data/doc_config/templates/default/layout/html/footer.erb +1 -1
  13. data/examples/ruby-api/.gitignore +86 -0
  14. data/examples/ruby-api/Gemfile +8 -0
  15. data/examples/ruby-api/README.md +24 -0
  16. data/examples/ruby-api/config.ru +2 -0
  17. data/examples/ruby-api/main.rb +33 -0
  18. data/examples/ruby-on-rails-api/.gitignore +18 -0
  19. data/examples/ruby-on-rails-api/Gemfile +48 -0
  20. data/examples/ruby-on-rails-api/README.md +27 -0
  21. data/examples/ruby-on-rails-api/Rakefile +6 -0
  22. data/examples/ruby-on-rails-api/app/assets/images/.keep +0 -0
  23. data/examples/ruby-on-rails-api/app/assets/javascripts/application.js +16 -0
  24. data/examples/ruby-on-rails-api/app/assets/stylesheets/application.css +15 -0
  25. data/examples/ruby-on-rails-api/app/controllers/application_controller.rb +8 -0
  26. data/examples/ruby-on-rails-api/app/controllers/concerns/.keep +0 -0
  27. data/examples/ruby-on-rails-api/app/controllers/ping_controller.rb +6 -0
  28. data/examples/ruby-on-rails-api/app/controllers/secured_ping_controller.rb +11 -0
  29. data/examples/ruby-on-rails-api/app/helpers/application_helper.rb +3 -0
  30. data/examples/ruby-on-rails-api/app/mailers/.keep +0 -0
  31. data/examples/ruby-on-rails-api/app/models/.keep +0 -0
  32. data/examples/ruby-on-rails-api/app/models/concerns/.keep +0 -0
  33. data/examples/ruby-on-rails-api/app/views/layouts/application.html.erb +14 -0
  34. data/examples/ruby-on-rails-api/bin/bundle +3 -0
  35. data/examples/ruby-on-rails-api/bin/rails +4 -0
  36. data/examples/ruby-on-rails-api/bin/rake +4 -0
  37. data/examples/ruby-on-rails-api/bin/setup +29 -0
  38. data/examples/ruby-on-rails-api/config.ru +4 -0
  39. data/examples/ruby-on-rails-api/config/application.rb +23 -0
  40. data/examples/ruby-on-rails-api/config/boot.rb +4 -0
  41. data/examples/ruby-on-rails-api/config/database.yml +27 -0
  42. data/examples/ruby-on-rails-api/config/environment.rb +5 -0
  43. data/examples/ruby-on-rails-api/config/environments/development.rb +37 -0
  44. data/examples/ruby-on-rails-api/config/environments/production.rb +83 -0
  45. data/examples/ruby-on-rails-api/config/environments/test.rb +41 -0
  46. data/examples/ruby-on-rails-api/config/initializers/backtrace_silencers.rb +7 -0
  47. data/examples/ruby-on-rails-api/config/initializers/cookies_serializer.rb +3 -0
  48. data/examples/ruby-on-rails-api/config/initializers/dotenv.rb +4 -0
  49. data/examples/ruby-on-rails-api/config/initializers/filter_parameter_logging.rb +4 -0
  50. data/examples/ruby-on-rails-api/config/initializers/inflections.rb +16 -0
  51. data/examples/ruby-on-rails-api/config/initializers/knock.rb +53 -0
  52. data/examples/ruby-on-rails-api/config/initializers/mime_types.rb +4 -0
  53. data/examples/ruby-on-rails-api/config/initializers/session_store.rb +3 -0
  54. data/examples/ruby-on-rails-api/config/initializers/wrap_parameters.rb +14 -0
  55. data/examples/ruby-on-rails-api/config/locales/en.yml +23 -0
  56. data/examples/ruby-on-rails-api/config/routes.rb +58 -0
  57. data/examples/ruby-on-rails-api/config/secrets.yml +28 -0
  58. data/examples/ruby-on-rails-api/db/schema.rb +15 -0
  59. data/examples/ruby-on-rails-api/db/seeds.rb +7 -0
  60. data/examples/ruby-on-rails-api/lib/assets/.keep +0 -0
  61. data/examples/ruby-on-rails-api/lib/tasks/.keep +0 -0
  62. data/examples/ruby-on-rails-api/log/.keep +0 -0
  63. data/examples/ruby-on-rails-api/public/404.html +67 -0
  64. data/examples/ruby-on-rails-api/public/422.html +67 -0
  65. data/examples/ruby-on-rails-api/public/500.html +66 -0
  66. data/examples/ruby-on-rails-api/public/favicon.ico +0 -0
  67. data/examples/ruby-on-rails-api/public/robots.txt +5 -0
  68. data/examples/ruby-on-rails-api/test/controllers/.keep +0 -0
  69. data/examples/ruby-on-rails-api/test/fixtures/.keep +0 -0
  70. data/examples/ruby-on-rails-api/test/helpers/.keep +0 -0
  71. data/examples/ruby-on-rails-api/test/integration/.keep +0 -0
  72. data/examples/ruby-on-rails-api/test/mailers/.keep +0 -0
  73. data/examples/ruby-on-rails-api/test/models/.keep +0 -0
  74. data/examples/ruby-on-rails-api/test/ping_controller_test.rb +8 -0
  75. data/examples/ruby-on-rails-api/test/secured_ping_controller_test.rb +26 -0
  76. data/examples/ruby-on-rails-api/test/test_helper.rb +16 -0
  77. data/lib/auth0/api/authentication_endpoints.rb +59 -30
  78. data/lib/auth0/api/v1/clients.rb +1 -1
  79. data/lib/auth0/api/v1/connections.rb +4 -3
  80. data/lib/auth0/api/v1/logs.rb +1 -1
  81. data/lib/auth0/api/v1/rules.rb +1 -1
  82. data/lib/auth0/api/v1/users.rb +5 -5
  83. data/lib/auth0/api/v2.rb +10 -0
  84. data/lib/auth0/api/v2/blacklists.rb +1 -1
  85. data/lib/auth0/api/v2/client_grants.rb +57 -0
  86. data/lib/auth0/api/v2/clients.rb +14 -14
  87. data/lib/auth0/api/v2/connections.rb +19 -20
  88. data/lib/auth0/api/v2/device_credentials.rb +76 -0
  89. data/lib/auth0/api/v2/emails.rb +5 -7
  90. data/lib/auth0/api/v2/jobs.rb +15 -12
  91. data/lib/auth0/api/v2/logs.rb +65 -0
  92. data/lib/auth0/api/v2/resource_servers.rb +61 -0
  93. data/lib/auth0/api/v2/rules.rb +21 -20
  94. data/lib/auth0/api/v2/stats.rb +2 -2
  95. data/lib/auth0/api/v2/tenants.rb +6 -4
  96. data/lib/auth0/api/v2/tickets.rb +13 -14
  97. data/lib/auth0/api/v2/user_blocks.rb +62 -0
  98. data/lib/auth0/api/v2/users.rb +63 -32
  99. data/lib/auth0/client.rb +0 -2
  100. data/lib/auth0/mixins.rb +4 -3
  101. data/lib/auth0/mixins/httpproxy.rb +55 -0
  102. data/lib/auth0/mixins/initializer.rb +27 -10
  103. data/lib/auth0/version.rb +1 -1
  104. data/spec/integration/lib/auth0/api/api_authentication_spec.rb +118 -0
  105. data/spec/integration/lib/auth0/api/v2/api_blacklist_spec.rb +1 -1
  106. data/spec/integration/lib/auth0/api/v2/api_client_grants_spec.rb +53 -0
  107. data/spec/integration/lib/auth0/api/v2/api_clients_spec.rb +5 -2
  108. data/spec/integration/lib/auth0/api/v2/api_connections_spec.rb +8 -5
  109. data/spec/integration/lib/auth0/api/v2/api_device_credentials_spec.rb +67 -0
  110. data/spec/integration/lib/auth0/api/v2/api_email_spec.rb +15 -8
  111. data/spec/integration/lib/auth0/api/v2/api_jobs_spec.rb +11 -9
  112. data/spec/integration/lib/auth0/api/v2/api_logs_spec.rb +69 -0
  113. data/spec/integration/lib/auth0/api/v2/api_resource_servers_spec.rb +47 -0
  114. data/spec/integration/lib/auth0/api/v2/api_rules_spec.rb +2 -1
  115. data/spec/integration/lib/auth0/api/v2/api_tickets_spec.rb +2 -2
  116. data/spec/integration/lib/auth0/api/v2/api_user_blocks_spec.rb +73 -0
  117. data/spec/integration/lib/auth0/api/v2/api_users_spec.rb +32 -5
  118. data/spec/integration/lib/auth0/auth0_client_spec.rb +14 -11
  119. data/spec/lib/auth0/api/authentication_endpoints_spec.rb +116 -56
  120. data/spec/lib/auth0/api/v1/connections_spec.rb +2 -4
  121. data/spec/lib/auth0/api/v1/rules_spec.rb +2 -1
  122. data/spec/lib/auth0/api/v1/users_spec.rb +17 -9
  123. data/spec/lib/auth0/api/v2/client_grants_spec.rb +44 -0
  124. data/spec/lib/auth0/api/v2/connections_spec.rb +2 -1
  125. data/spec/lib/auth0/api/v2/device_credentials_spec.rb +73 -0
  126. data/spec/lib/auth0/api/v2/jobs_spec.rb +3 -2
  127. data/spec/lib/auth0/api/v2/logs_spec.rb +48 -0
  128. data/spec/lib/auth0/api/v2/resource_servers_spec.rb +63 -0
  129. data/spec/lib/auth0/api/v2/rules_spec.rb +8 -4
  130. data/spec/lib/auth0/api/v2/tenants_spec.rb +2 -1
  131. data/spec/lib/auth0/api/v2/tickets_spec.rb +4 -7
  132. data/spec/lib/auth0/api/v2/user_blocks_spec.rb +52 -0
  133. data/spec/lib/auth0/api/v2/users_spec.rb +39 -6
  134. data/spec/lib/auth0/client_spec.rb +8 -5
  135. data/spec/lib/auth0/mixins/httpproxy_spec.rb +225 -0
  136. data/spec/lib/auth0/mixins/initializer_spec.rb +1 -1
  137. data/spec/spec_helper_full.rb +12 -3
  138. data/spec/spec_helper_unit.rb +2 -2
  139. data/spec/support/credentials.rb +6 -4
  140. data/spec/support/dummy_class.rb +2 -1
  141. data/spec/support/dummy_class_for_proxy.rb +2 -2
  142. data/spec/support/dummy_class_for_restclient.rb +2 -0
  143. metadata +117 -9
  144. data/lib/auth0/mixins/httparty_proxy.rb +0 -38
  145. data/spec/lib/auth0/mixins/httparty_proxy_spec.rb +0 -148
@@ -40,8 +40,7 @@ describe Auth0::Api::V1::Connections do
40
40
  options: {
41
41
  tenant_domain: 'google.com',
42
42
  domain_aliases: 'test.google.com,auth0.com'
43
- }
44
- }
43
+ } }
45
44
  expect(@instance).to receive(:post).with('/api/connections', params)
46
45
  expect do
47
46
  @instance.create_connection(
@@ -59,8 +58,7 @@ describe Auth0::Api::V1::Connections do
59
58
  params = { status: false,
60
59
  options: {
61
60
  tenant_domain: 'google.com'
62
- }
63
- }
61
+ } }
64
62
  expect(@instance).to receive(:put).with('/api/connections/TestName', params)
65
63
  expect { @instance.update_connection('TestName', 'google.com', false) }.not_to raise_error
66
64
  end
@@ -20,7 +20,8 @@ describe Auth0::Api::V1::Rules do
20
20
  it 'is expected to call post /api/rules' do
21
21
  expect(@instance).to receive(:post).with(
22
22
  '/api/rules',
23
- name: 'test', script: 'script', order: 'order', status: 'status')
23
+ name: 'test', script: 'script', order: 'order', status: 'status'
24
+ )
24
25
  expect { @instance.create_rule('test', 'script', 'order', 'status') }.not_to raise_error
25
26
  end
26
27
  end
@@ -89,7 +89,7 @@ describe Auth0::Api::V1::Users do
89
89
  @instance.client_users('test_client_id')
90
90
  end
91
91
  it 'is expected to call /api/client//users if no client_id passed' do
92
- expect(@instance).to receive(:get).with('/api/clients//users')
92
+ expect(@instance).to receive(:get).with("/api/clients/#{@instance.client_id}/users")
93
93
  expect { @instance.client_users }.not_to raise_error
94
94
  end
95
95
  end
@@ -101,7 +101,8 @@ describe Auth0::Api::V1::Users do
101
101
  '/api/users',
102
102
  email: 'test@test.com',
103
103
  password: 'password',
104
- connection: 'conn')
104
+ connection: 'conn'
105
+ )
105
106
  @instance.create_user('test@test.com', 'password', 'conn')
106
107
  end
107
108
  end
@@ -120,7 +121,8 @@ describe Auth0::Api::V1::Users do
120
121
  password = SecureRandom.hex
121
122
  expect(@instance).to receive(:post).with(
122
123
  '/api/users/USERID/change_password_ticket',
123
- 'newPassword' => password, 'resultUrl' => nil)
124
+ 'newPassword' => password, 'resultUrl' => nil
125
+ )
124
126
  @instance.change_password_ticket 'USERID', password
125
127
  end
126
128
  end
@@ -130,14 +132,16 @@ describe Auth0::Api::V1::Users do
130
132
  it 'is expected to call post to /api/users/userId/verification_ticket if resulturl is set' do
131
133
  expect(@instance).to receive(:post).with(
132
134
  '/api/users/auth0|tdasfasdfasdfa/verification_ticket',
133
- 'resultUrl' => 'google.com')
135
+ 'resultUrl' => 'google.com'
136
+ )
134
137
  @instance.verification_ticket('auth0|tdasfasdfasdfa', 'google.com')
135
138
  end
136
139
  it 'is expected to call post to /api/users/userId/verification_ticket
137
140
  if result url is empty' do
138
141
  expect(@instance).to receive(:post).with(
139
142
  '/api/users/auth0|tdasfasdfasdfa/verification_ticket',
140
- 'resultUrl' => nil)
143
+ 'resultUrl' => nil
144
+ )
141
145
  @instance.verification_ticket('auth0|tdasfasdfasdfa')
142
146
  end
143
147
  end
@@ -147,7 +151,8 @@ describe Auth0::Api::V1::Users do
147
151
  it 'is expected to call post to /api/users/userId/public_key' do
148
152
  expect(@instance).to receive(:post).with(
149
153
  '/api/users/auth0|tdasfasdfasdfa/public_key',
150
- device: 'device22', public_key: 'SuperSecurePK')
154
+ device: 'device22', public_key: 'SuperSecurePK'
155
+ )
151
156
  @instance.create_public_key('auth0|tdasfasdfasdfa', 'device22', 'SuperSecurePK')
152
157
  end
153
158
  end
@@ -174,7 +179,8 @@ describe Auth0::Api::V1::Users do
174
179
  expect(@instance).to receive(:put).with(
175
180
  '/api/users/auth0|tdasfasdfasdfa/password',
176
181
  password: 'password',
177
- verify: true)
182
+ verify: true
183
+ )
178
184
  @instance.update_user_password('auth0|tdasfasdfasdfa', 'password')
179
185
  end
180
186
  end
@@ -187,9 +193,11 @@ describe Auth0::Api::V1::Users do
187
193
  email: 'email@email.com',
188
194
  password: 'password',
189
195
  connection: 'Con',
190
- verify: true)
196
+ verify: true
197
+ )
191
198
  @instance.update_user_password_using_email(
192
- 'email@email.com', 'password', 'Con')
199
+ 'email@email.com', 'password', 'Con'
200
+ )
193
201
  end
194
202
  end
195
203
 
@@ -0,0 +1,44 @@
1
+ require 'spec_helper'
2
+ describe Auth0::Api::V2::ClientGrants do
3
+ before :all do
4
+ dummy_instance = DummyClass.new
5
+ dummy_instance.extend(Auth0::Api::V2::ClientGrants)
6
+ @instance = dummy_instance
7
+ end
8
+ context '.client_grants' do
9
+ it { expect(@instance).to respond_to(:client_grants) }
10
+ it { expect(@instance).to respond_to(:get_all_client_grants) }
11
+ it 'is expected to send get request to /api/v2/client_grants/' do
12
+ expect(@instance).to receive(:get).with('/api/v2/client-grants')
13
+ expect { @instance.client_grants }.not_to raise_error
14
+ end
15
+ end
16
+
17
+ context '.create_client_grant' do
18
+ it { expect(@instance).to respond_to(:create_client_grant) }
19
+ it 'is expected to send post to /api/v2/client-grants' do
20
+ expect(@instance).to receive(:post).with('/api/v2/client-grants', opt: 'test body')
21
+ expect { @instance.create_client_grant(opt: 'test body') }.not_to raise_error
22
+ end
23
+ end
24
+
25
+ context '.delete_client_grant' do
26
+ it { expect(@instance).to respond_to(:delete_client_grant) }
27
+ it 'is expected to send delete to /api/v2/client-grants/1' do
28
+ expect(@instance).to receive(:delete).with('/api/v2/client-grants/1')
29
+ expect { @instance.delete_client_grant('1') }.not_to raise_error
30
+ end
31
+ it { expect { @instance.delete_client_grant('') }.to raise_error 'Must specify a client grant id' }
32
+ end
33
+
34
+ context '.patch_client_grant' do
35
+ it { expect(@instance).to respond_to(:patch_client_grant) }
36
+ it { expect(@instance).to respond_to(:update_client_grant) }
37
+ it 'is expected to send patch to /api/v2/client-grants/1' do
38
+ expect(@instance).to receive(:patch).with('/api/v2/client-grants/1', 'test body')
39
+ expect { @instance.patch_client_grant('1', 'test body') }.not_to raise_error
40
+ end
41
+ it { expect { @instance.patch_client_grant('', nil) }.to raise_error 'Must specify a client grant id' }
42
+ it { expect { @instance.patch_client_grant('some', nil) }.to raise_error 'Must specify a valid body' }
43
+ end
44
+ end
@@ -15,7 +15,8 @@ describe Auth0::Api::V2::Connections do
15
15
  '/api/v2/connections',
16
16
  strategy: nil,
17
17
  fields: nil,
18
- include_fields: true)
18
+ include_fields: true
19
+ )
19
20
  expect { @instance.connections }.not_to raise_error
20
21
  end
21
22
  end
@@ -0,0 +1,73 @@
1
+ require 'spec_helper'
2
+ describe Auth0::Api::V2::DeviceCredentials do
3
+ attr_reader :client_id
4
+
5
+ before :all do
6
+ dummy_instance = DummyClass.new
7
+ dummy_instance.extend(Auth0::Api::V2::DeviceCredentials)
8
+ @instance = dummy_instance
9
+ @client_id = Faker::Lorem.word
10
+ end
11
+ context '.device_credentials' do
12
+ it { expect(@instance).to respond_to(:device_credentials) }
13
+ it { expect(@instance).to respond_to(:list_device_credentials) }
14
+ it 'is expected to send get request to /api/v2/device-credentials' do
15
+ expect(@instance).to receive(:get).with(
16
+ '/api/v2/device-credentials',
17
+ fields: nil,
18
+ include_fields: nil,
19
+ user_id: nil,
20
+ client_id: client_id,
21
+ type: nil
22
+ )
23
+ expect { @instance.device_credentials(client_id) }.not_to raise_error
24
+ end
25
+ it 'is expect to raise an error when type is not one of \'public_key\', \'refresh_token\'' do
26
+ expect { @instance.device_credentials(client_id, type: 'invalid_type') }.to raise_error(
27
+ 'Type must be one of \'public_key\', \'refresh_token\''
28
+ )
29
+ end
30
+ end
31
+
32
+ context '.create_device_credential' do
33
+ it { expect(@instance).to respond_to(:create_device_credential) }
34
+ it { expect(@instance).to respond_to(:create_device_public_key) }
35
+ it 'is expected to send post to /api/v2/device-credentials' do
36
+ expect(@instance).to receive(:post).with(
37
+ '/api/v2/device-credentials',
38
+ device_name: 'device_name',
39
+ value: 'value',
40
+ device_id: 'device_id',
41
+ client_id: 'client_id',
42
+ type: 'public_key'
43
+ )
44
+ expect { @instance.create_device_credential('device_name', 'value', 'device_id', 'client_id') }
45
+ .not_to raise_error
46
+ end
47
+ it do
48
+ expect { @instance.create_device_credential(nil, 'value', 'device_id', 'client_id') }
49
+ .to raise_error('Must supply a valid device_name')
50
+ end
51
+ it do
52
+ expect { @instance.create_device_credential('device_name', nil, 'device_id', 'client_id') }
53
+ .to raise_error('Must supply a valid value')
54
+ end
55
+ it do
56
+ expect { @instance.create_device_credential('device_name', 'value', nil, 'client_id') }
57
+ .to raise_error('Must supply a valid device_id')
58
+ end
59
+ it do
60
+ expect { @instance.create_device_credential('device_name', 'value', 'device_id', nil) }
61
+ .to raise_error('Must supply a valid client_id')
62
+ end
63
+ end
64
+
65
+ context '.delete_device_credential' do
66
+ it { expect(@instance).to respond_to(:delete_device_credential) }
67
+ it 'is expected to send delete to /api/v2/device-credentials/1' do
68
+ expect(@instance).to receive(:delete).with('/api/v2/device-credentials/1')
69
+ expect { @instance.delete_device_credential('1') }.not_to raise_error
70
+ end
71
+ it { expect { @instance.delete_device_credential('') }.to raise_error 'Must supply a valid id' }
72
+ end
73
+ end
@@ -17,7 +17,8 @@ describe Auth0::Api::V2::Jobs do
17
17
  it { expect(@instance).to respond_to(:import_users) }
18
18
  it 'expect client to send post to /api/v2/jobs/users-imports' do
19
19
  expect(@instance).to receive(:post_file).with(
20
- '/api/v2/jobs/users-imports', users: 'file', connection_id: 'connnection_id')
20
+ '/api/v2/jobs/users-imports', users: 'file', connection_id: 'connnection_id'
21
+ )
21
22
  expect { @instance.import_users('file', 'connnection_id') }.not_to raise_error
22
23
  end
23
24
  it { expect { @instance.import_users('', 'connnection_id') }.to raise_error('Must specify a valid file') }
@@ -28,7 +29,7 @@ describe Auth0::Api::V2::Jobs do
28
29
  it { expect(@instance).to respond_to(:send_verification_email) }
29
30
  it 'expect client to send post to /api/v2/jobs/verification-email' do
30
31
  expect(@instance).to receive(:post).with('/api/v2/jobs/verification-email', user_id: 'user_id')
31
- expect { @instance.send_verification_email(user_id: 'user_id') }.not_to raise_error
32
+ expect { @instance.send_verification_email('user_id') }.not_to raise_error
32
33
  end
33
34
  it { expect { @instance.send_verification_email('') }.to raise_error('Must specify a user id') }
34
35
  end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+ describe Auth0::Api::V2::Logs do
3
+ before :all do
4
+ dummy_instance = DummyClass.new
5
+ dummy_instance.extend(Auth0::Api::V2::Logs)
6
+ @instance = dummy_instance
7
+ end
8
+
9
+ context '.logs' do
10
+ it { expect(@instance).to respond_to(:logs) }
11
+ it { expect(@instance).to respond_to(:get_logs) }
12
+ it 'is expected to call /api/v2/logs' do
13
+ expect(@instance).to receive(:get).with(
14
+ '/api/v2/logs',
15
+ q: nil,
16
+ page: nil,
17
+ per_page: nil,
18
+ sort: nil,
19
+ fields: nil,
20
+ include_fields: nil,
21
+ include_totals: nil,
22
+ from: nil,
23
+ take: nil
24
+ )
25
+ expect { @instance.logs }.not_to raise_error
26
+ end
27
+ it 'is expect to rise an error when take is higher than 100' do
28
+ expect { @instance.logs(take: rand(101..2000)) }.to raise_error(
29
+ 'The total amount of entries to retrieve should be less than 100'
30
+ )
31
+ end
32
+ it 'is expect to rise an error when per_page is higher than 100' do
33
+ expect { @instance.logs(per_page: rand(101..2000)) }.to raise_error(
34
+ 'The total amount of entries per page should be less than 100'
35
+ )
36
+ end
37
+ end
38
+
39
+ context '.log' do
40
+ it { expect(@instance).to respond_to(:log) }
41
+ it { expect(@instance).to respond_to(:get_logs_by_id) }
42
+ it 'is expected to call get request to /api/v2/logs/LOG_ID' do
43
+ expect(@instance).to receive(:get).with('/api/v2/logs/LOG_ID')
44
+ expect { @instance.log('LOG_ID') }.not_to raise_error
45
+ end
46
+ it { expect { @instance.log(nil) }.to raise_error('Must supply a valid log_id') }
47
+ end
48
+ end
@@ -0,0 +1,63 @@
1
+ require 'spec_helper'
2
+ describe Auth0::Api::V2::ResourceServers do
3
+ before :all do
4
+ dummy_instance = DummyClass.new
5
+ dummy_instance.extend(Auth0::Api::V2::ResourceServers)
6
+ dummy_instance.extend(Auth0::Mixins::Initializer)
7
+ @instance = dummy_instance
8
+ end
9
+
10
+ context '.resource_server' do
11
+ it { expect(@instance).to respond_to(:resource_server) }
12
+ it 'is expected to call get /api/v2/resource-servers/test' do
13
+ expect(@instance).to receive(:get).with('/api/v2/resource-servers/test')
14
+ expect { @instance.resource_server('test') }.not_to raise_error
15
+ end
16
+ it 'expect to raise an error when calling with empty resource server id' do
17
+ expect { @instance.resource_server(nil) }.to raise_error 'Must supply a valid resource server id'
18
+ end
19
+ end
20
+
21
+ context '.create_resource_server' do
22
+ it { expect(@instance).to respond_to(:create_resource_server) }
23
+ it 'is expected to call post /api/v2/resource-servers' do
24
+ expect(@instance).to receive(:post).with(
25
+ '/api/v2/resource-servers',
26
+ identifier: 'test',
27
+ name: 'name',
28
+ signing_alg: 'signing_alg',
29
+ signing_secret: 'signing_secret',
30
+ token_lifetime: 'token_lifetime',
31
+ scopes: 'scopes'
32
+ )
33
+
34
+ @instance.create_resource_server('test', name: 'name',
35
+ signing_alg: 'signing_alg',
36
+ signing_secret: 'signing_secret',
37
+ token_lifetime: 'token_lifetime',
38
+ scopes: 'scopes')
39
+ end
40
+ it 'expect to raise an error when calling with empty identifier' do
41
+ expect { @instance.create_resource_server(nil) }.to raise_error 'Must supply a valid resource server id'
42
+ end
43
+ it 'expect to raise an error when name contains < or > characters' do
44
+ expect { @instance.create_resource_server('test', name: '<') }.to raise_error(
45
+ 'Name must contain at least one character. Does not allow "<" or ">"'
46
+ )
47
+ expect { @instance.create_resource_server('test', name: '>') }.to raise_error(
48
+ 'Name must contain at least one character. Does not allow "<" or ">"'
49
+ )
50
+ end
51
+ end
52
+
53
+ context '.delete_resource_server' do
54
+ it { expect(@instance).to respond_to(:delete_resource_server) }
55
+ it 'is expected to call delete /api/v2/resource-server/test' do
56
+ expect(@instance).to receive(:delete).with('/api/v2/resource-servers/test')
57
+ expect { @instance.delete_resource_server('test') }.not_to raise_error
58
+ end
59
+ it 'expect to raise an error when calling with empty resource server identifier' do
60
+ expect { @instance.delete_resource_server(nil) }.to raise_error 'Must supply a valid resource server id'
61
+ end
62
+ end
63
+ end
@@ -11,7 +11,8 @@ describe Auth0::Api::V2::Rules do
11
11
  it { expect(@instance).to respond_to(:rules) }
12
12
  it 'is expected to call get /api/v2/rules' do
13
13
  expect(@instance).to receive(:get).with(
14
- '/api/v2/rules', enabled: nil, fields: nil, include_fields: nil, stage: nil)
14
+ '/api/v2/rules', enabled: nil, fields: nil, include_fields: nil, stage: nil
15
+ )
15
16
  expect { @instance.rules }.not_to raise_error
16
17
  end
17
18
  end
@@ -20,7 +21,8 @@ describe Auth0::Api::V2::Rules do
20
21
  it { expect(@instance).to respond_to(:rule) }
21
22
  it 'is expected to call get /api/v2/rules/test' do
22
23
  expect(@instance).to receive(:get).with(
23
- '/api/v2/rules/test', fields: nil, include_fields: nil)
24
+ '/api/v2/rules/test', fields: nil, include_fields: nil
25
+ )
24
26
  expect { @instance.rule('test') }.not_to raise_error
25
27
  end
26
28
  it 'expect to raise an error when calling with empty rule id' do
@@ -33,7 +35,8 @@ describe Auth0::Api::V2::Rules do
33
35
  it 'is expected to call post /api/v2/rules' do
34
36
  expect(@instance).to receive(:post).with(
35
37
  '/api/v2/rules',
36
- name: 'test', script: 'script', order: 'order', enabled: false, stage: 'login_success')
38
+ name: 'test', script: 'script', order: 'order', enabled: false, stage: 'login_success'
39
+ )
37
40
  expect { @instance.create_rule('test', 'script', 'order', false) }.not_to raise_error
38
41
  end
39
42
  it 'expect to raise an error when calling with empty name' do
@@ -47,7 +50,8 @@ describe Auth0::Api::V2::Rules do
47
50
  it { expect(@instance).to respond_to(:update_rule) }
48
51
  it 'is expected to call put /api/v2/rules/test' do
49
52
  expect(@instance).to receive(:patch).with(
50
- '/api/v2/rules/test', script: 'script', order: 'order', enabled: true, stage: 'some_stage')
53
+ '/api/v2/rules/test', script: 'script', order: 'order', enabled: true, stage: 'some_stage'
54
+ )
51
55
  expect do
52
56
  @instance.update_rule('test', script: 'script', order: 'order', enabled: true, stage: 'some_stage')
53
57
  end.not_to raise_error
@@ -19,7 +19,8 @@ describe Auth0::Api::V2::Tenants do
19
19
  end
20
20
  it 'expect client to rasie error when calling with empty body' do
21
21
  expect { @instance.update_tenant_settings(nil) }.to raise_error(
22
- 'Must supply a valid body to update tenant settings')
22
+ 'Must supply a valid body to update tenant settings'
23
+ )
23
24
  end
24
25
  end
25
26
  end
@@ -12,20 +12,17 @@ describe Auth0::Api::V2::Tickets do
12
12
  end
13
13
  it 'expect client to rasie error when calling with empty body' do
14
14
  expect { @instance.post_email_verification(nil) }.to raise_error(
15
- 'Must supply a valid user id to post an email verification')
15
+ 'Must supply a valid user id to post an email verification'
16
+ )
16
17
  end
17
18
  end
18
19
  context '.post_password_change' do
19
20
  it { expect(@instance).to respond_to(:post_password_change) }
20
21
  it 'expect client to send post to /api/v2/tickets/password-change with body' do
21
22
  expect(@instance).to receive(:post).with('/api/v2/tickets/password-change', user_id: nil, result_url: nil,
22
- new_password: 'new_pass',
23
+ new_password: nil,
23
24
  connection_id: nil, email: nil)
24
- expect { @instance.post_password_change('new_pass') }.not_to raise_error
25
- end
26
- it 'expect client to rasie error when calling with empty body' do
27
- expect { @instance.post_password_change(nil) }.to raise_error(
28
- 'Must supply a valid new password to post a password-change')
25
+ expect { @instance.post_password_change }.not_to raise_error
29
26
  end
30
27
  end
31
28
  end