auth0 4.0.0 → 4.1.0

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.
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