auth0 4.11.0 → 5.20.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 (358) hide show
  1. checksums.yaml +4 -4
  2. data/.version +1 -0
  3. data/CHANGELOG.md +477 -19
  4. data/README.md +80 -129
  5. data/auth0.gemspec +10 -13
  6. data/lib/auth0/algorithm.rb +5 -0
  7. data/lib/auth0/api/authentication_endpoints.rb +189 -242
  8. data/lib/auth0/api/v2/actions.rb +209 -0
  9. data/lib/auth0/api/v2/attack_protection.rb +79 -0
  10. data/lib/auth0/api/v2/branding.rb +65 -0
  11. data/lib/auth0/api/v2/client_grants.rb +27 -2
  12. data/lib/auth0/api/v2/clients.rb +42 -0
  13. data/lib/auth0/api/v2/connections.rb +14 -5
  14. data/lib/auth0/api/v2/device_credentials.rb +12 -7
  15. data/lib/auth0/api/v2/grants.rb +49 -0
  16. data/lib/auth0/api/v2/jobs.rb +28 -5
  17. data/lib/auth0/api/v2/log_streams.rb +78 -0
  18. data/lib/auth0/api/v2/logs.rb +2 -2
  19. data/lib/auth0/api/v2/organizations.rb +407 -0
  20. data/lib/auth0/api/v2/prompts.rb +70 -0
  21. data/lib/auth0/api/v2/refresh_tokens.rb +34 -0
  22. data/lib/auth0/api/v2/roles.rb +7 -3
  23. data/lib/auth0/api/v2/sessions.rb +43 -0
  24. data/lib/auth0/api/v2/tickets.rb +25 -2
  25. data/lib/auth0/api/v2/users.rb +216 -14
  26. data/lib/auth0/api/v2.rb +21 -3
  27. data/lib/auth0/client_assertion.rb +45 -0
  28. data/lib/auth0/exception.rb +19 -8
  29. data/lib/auth0/mixins/access_token_struct.rb +2 -2
  30. data/lib/auth0/mixins/api_token_struct.rb +2 -3
  31. data/lib/auth0/mixins/httpproxy.rb +99 -35
  32. data/lib/auth0/mixins/initializer.rb +6 -9
  33. data/lib/auth0/mixins/permission_struct.rb +2 -2
  34. data/lib/auth0/mixins/token_management.rb +35 -0
  35. data/lib/auth0/mixins/validation.rb +335 -1
  36. data/lib/auth0/mixins.rb +2 -1
  37. data/lib/auth0/version.rb +1 -1
  38. data/lib/auth0.rb +1 -0
  39. metadata +71 -608
  40. data/.bundle/config +0 -4
  41. data/.circleci/config.yml +0 -23
  42. data/.env.example +0 -2
  43. data/.gemrelease +0 -2
  44. data/.github/CODEOWNERS +0 -1
  45. data/.github/ISSUE_TEMPLATE.md +0 -39
  46. data/.github/PULL_REQUEST_TEMPLATE.md +0 -35
  47. data/.github/stale.yml +0 -20
  48. data/.gitignore +0 -14
  49. data/.rspec +0 -3
  50. data/.rubocop.yml +0 -10
  51. data/.rubocop_todo.yml +0 -5
  52. data/CODE_OF_CONDUCT.md +0 -3
  53. data/DEPLOYMENT.md +0 -61
  54. data/Dockerfile +0 -5
  55. data/Gemfile +0 -19
  56. data/Gemfile.lock +0 -224
  57. data/Guardfile +0 -37
  58. data/RUBYGEM.md +0 -9
  59. data/Rakefile +0 -53
  60. data/codecov.yml +0 -22
  61. data/deploy_documentation.sh +0 -29
  62. data/doc_config/templates/default/fulldoc/html/css/full_list.css +0 -79
  63. data/doc_config/templates/default/fulldoc/html/css/style.css +0 -546
  64. data/doc_config/templates/default/layout/html/breadcrumb.erb +0 -11
  65. data/doc_config/templates/default/layout/html/footer.erb +0 -115
  66. data/doc_config/templates/default/layout/html/headers.erb +0 -17
  67. data/doc_config/templates/default/layout/html/layout.erb +0 -27
  68. data/examples/ruby-api/.env.example +0 -2
  69. data/examples/ruby-api/.gitignore +0 -86
  70. data/examples/ruby-api/Gemfile +0 -8
  71. data/examples/ruby-api/README.md +0 -24
  72. data/examples/ruby-api/config.ru +0 -2
  73. data/examples/ruby-api/main.rb +0 -33
  74. data/examples/ruby-on-rails-api/.env.example +0 -2
  75. data/examples/ruby-on-rails-api/.gitignore +0 -18
  76. data/examples/ruby-on-rails-api/Gemfile +0 -48
  77. data/examples/ruby-on-rails-api/README.md +0 -27
  78. data/examples/ruby-on-rails-api/Rakefile +0 -6
  79. data/examples/ruby-on-rails-api/app/assets/images/.keep +0 -0
  80. data/examples/ruby-on-rails-api/app/assets/javascripts/application.js +0 -16
  81. data/examples/ruby-on-rails-api/app/assets/stylesheets/application.css +0 -15
  82. data/examples/ruby-on-rails-api/app/controllers/application_controller.rb +0 -8
  83. data/examples/ruby-on-rails-api/app/controllers/concerns/.keep +0 -0
  84. data/examples/ruby-on-rails-api/app/controllers/ping_controller.rb +0 -6
  85. data/examples/ruby-on-rails-api/app/controllers/secured_ping_controller.rb +0 -11
  86. data/examples/ruby-on-rails-api/app/helpers/application_helper.rb +0 -3
  87. data/examples/ruby-on-rails-api/app/mailers/.keep +0 -0
  88. data/examples/ruby-on-rails-api/app/models/.keep +0 -0
  89. data/examples/ruby-on-rails-api/app/models/User.rb +0 -5
  90. data/examples/ruby-on-rails-api/app/models/concerns/.keep +0 -0
  91. data/examples/ruby-on-rails-api/app/views/layouts/application.html.erb +0 -14
  92. data/examples/ruby-on-rails-api/bin/bundle +0 -3
  93. data/examples/ruby-on-rails-api/bin/rails +0 -4
  94. data/examples/ruby-on-rails-api/bin/rake +0 -4
  95. data/examples/ruby-on-rails-api/bin/setup +0 -29
  96. data/examples/ruby-on-rails-api/config/application.rb +0 -23
  97. data/examples/ruby-on-rails-api/config/boot.rb +0 -4
  98. data/examples/ruby-on-rails-api/config/database.yml +0 -27
  99. data/examples/ruby-on-rails-api/config/environment.rb +0 -5
  100. data/examples/ruby-on-rails-api/config/environments/development.rb +0 -37
  101. data/examples/ruby-on-rails-api/config/environments/production.rb +0 -83
  102. data/examples/ruby-on-rails-api/config/environments/test.rb +0 -41
  103. data/examples/ruby-on-rails-api/config/initializers/backtrace_silencers.rb +0 -7
  104. data/examples/ruby-on-rails-api/config/initializers/cookies_serializer.rb +0 -3
  105. data/examples/ruby-on-rails-api/config/initializers/dotenv.rb +0 -4
  106. data/examples/ruby-on-rails-api/config/initializers/filter_parameter_logging.rb +0 -4
  107. data/examples/ruby-on-rails-api/config/initializers/inflections.rb +0 -16
  108. data/examples/ruby-on-rails-api/config/initializers/knock.rb +0 -35
  109. data/examples/ruby-on-rails-api/config/initializers/mime_types.rb +0 -4
  110. data/examples/ruby-on-rails-api/config/initializers/session_store.rb +0 -3
  111. data/examples/ruby-on-rails-api/config/initializers/wrap_parameters.rb +0 -14
  112. data/examples/ruby-on-rails-api/config/locales/en.yml +0 -23
  113. data/examples/ruby-on-rails-api/config/routes.rb +0 -58
  114. data/examples/ruby-on-rails-api/config/secrets.yml +0 -28
  115. data/examples/ruby-on-rails-api/config.ru +0 -4
  116. data/examples/ruby-on-rails-api/db/schema.rb +0 -15
  117. data/examples/ruby-on-rails-api/db/seeds.rb +0 -7
  118. data/examples/ruby-on-rails-api/lib/assets/.keep +0 -0
  119. data/examples/ruby-on-rails-api/lib/tasks/.keep +0 -0
  120. data/examples/ruby-on-rails-api/log/.keep +0 -0
  121. data/examples/ruby-on-rails-api/public/404.html +0 -67
  122. data/examples/ruby-on-rails-api/public/422.html +0 -67
  123. data/examples/ruby-on-rails-api/public/500.html +0 -66
  124. data/examples/ruby-on-rails-api/public/favicon.ico +0 -0
  125. data/examples/ruby-on-rails-api/public/robots.txt +0 -5
  126. data/examples/ruby-on-rails-api/test/controllers/.keep +0 -0
  127. data/examples/ruby-on-rails-api/test/fixtures/.keep +0 -0
  128. data/examples/ruby-on-rails-api/test/helpers/.keep +0 -0
  129. data/examples/ruby-on-rails-api/test/integration/.keep +0 -0
  130. data/examples/ruby-on-rails-api/test/mailers/.keep +0 -0
  131. data/examples/ruby-on-rails-api/test/models/.keep +0 -0
  132. data/examples/ruby-on-rails-api/test/ping_controller_test.rb +0 -8
  133. data/examples/ruby-on-rails-api/test/secured_ping_controller_test.rb +0 -26
  134. data/examples/ruby-on-rails-api/test/test_helper.rb +0 -16
  135. data/lib/auth0/api/v1/clients.rb +0 -48
  136. data/lib/auth0/api/v1/connections.rb +0 -53
  137. data/lib/auth0/api/v1/logs.rb +0 -34
  138. data/lib/auth0/api/v1/rules.rb +0 -45
  139. data/lib/auth0/api/v1/users.rb +0 -164
  140. data/lib/auth0/api/v1.rb +0 -19
  141. data/publish_rubygem.sh +0 -10
  142. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_change_password/should_trigger_a_password_reset.yml +0 -63
  143. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_incorrect_email.yml +0 -54
  144. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_incorrect_password.yml +0 -54
  145. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_invalid_audience.yml +0 -55
  146. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_login_successfully_with_a_custom_audience.yml +0 -117
  147. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_login_successfully_with_a_default_scope.yml +0 -119
  148. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_saml_metadata/should_retrieve_SAML_metadata.yml +0 -57
  149. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_userinfo/should_fail_as_not_authorized.yml +0 -55
  150. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_userinfo/should_return_the_userinfo.yml +0 -118
  151. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_wsfed_metadata/should_retrieve_WSFED_metadata.yml +0 -55
  152. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/create_test_user.yml +0 -58
  153. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/delete_test_user.yml +0 -54
  154. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Anomaly/_check_if_ip_is_blocked/should_return_200_response_code.yml +0 -65
  155. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Anomaly/_remove_ip_block/should_remove_an_IP_successfully.yml +0 -60
  156. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Blacklists/_add_token_to_blacklist/should_add_a_token_to_the_blacklist.yml +0 -56
  157. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Blacklists/_blacklisted_tokens/should_get_the_added_token_from_the_blacklist.yml +0 -59
  158. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_at_least_1_result.yml +0 -62
  159. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_the_first_page_of_one_result.yml +0 -66
  160. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_the_test_client_grant.yml +0 -62
  161. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_delete_client_grant/should_delete_the_test_client_grant.yml +0 -54
  162. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_patch_client_grant/should_update_the_test_client_grant.yml +0 -64
  163. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/create_test_client.yml +0 -118
  164. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/create_test_client_grant.yml +0 -64
  165. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/delete_test_client.yml +0 -54
  166. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/delete_test_client_grant.yml +0 -54
  167. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/_filters/should_exclude_and_include_fields_properly.yml +0 -91
  168. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/_filters/should_include_the_specified_fields.yml +0 -63
  169. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/should_get_the_test_client.yml +0 -92
  170. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_exclude_fields_not_specified.yml +0 -60
  171. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_exclude_the_specified_fields.yml +0 -132
  172. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_include_the_specified_fields.yml +0 -63
  173. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_paginate_results.yml +0 -65
  174. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/should_get_at_least_one_client.yml +0 -132
  175. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_delete_client/should_delete_the_test_client_without_an_error.yml +0 -54
  176. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_patch_client/should_update_the_client_with_the_correct_attributes.yml +0 -94
  177. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/create_test_client.yml +0 -118
  178. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/_filters/should_exclude_the_fields_indicated.yml +0 -63
  179. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/_filters/should_include_the_fields_indicated.yml +0 -61
  180. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/should_find_the_correct_connection.yml +0 -63
  181. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_include_previously-created_connection_when_filtered.yml +0 -59
  182. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_should_exclude_the_fields_indicated_from_filtered_results.yml +0 -59
  183. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_should_include_the_fields_indicated_from_filtered_results.yml +0 -59
  184. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/should_include_the_previously_created_connection.yml +0 -59
  185. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/should_not_be_empty.yml +0 -59
  186. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_delete_connection/should_delete_the_connection.yml +0 -54
  187. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_delete_connection_user/should_delete_the_user_created.yml +0 -110
  188. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_update_connection/should_update_the_connection.yml +0 -66
  189. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/create_test_connection.yml +0 -65
  190. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/create_test_user.yml +0 -68
  191. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_delete_device_credential/should_delete_the_test_credential_without_an_error.yml +0 -54
  192. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_device_credentials/_filter_by_type/should_exclude_the_test_credential.yml +0 -59
  193. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_device_credentials/should_have_at_least_1_entry.yml +0 -62
  194. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_device_credentials/should_include_the_test_credential.yml +0 -62
  195. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/create_test_credential.yml +0 -62
  196. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/create_test_user.yml +0 -68
  197. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/delete_test_credential.yml +0 -54
  198. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/delete_test_user.yml +0 -54
  199. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_configure_provider/should_configure_a_new_email_provider.yml +0 -63
  200. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_delete_provider/should_delete_the_existing_email_provider_without_an_error.yml +0 -54
  201. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_delete_provider/should_throw_an_error_trying_to_get_the_email_provider.yml +0 -51
  202. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/_filters/should_get_the_existing_email_provider_with_specific_fields.yml +0 -60
  203. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/_filters/should_get_the_existing_email_provider_without_specific_fields.yml +0 -61
  204. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/should_get_the_existing_email_provider.yml +0 -61
  205. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_update_provider/should_update_the_existing_email_provider.yml +0 -63
  206. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/delete_existing_provider.yml +0 -54
  207. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_export_users_and_get_job/should_create_an_export_users_job_successfully.yml +0 -61
  208. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_export_users_and_get_job/should_get_the_export_users_job.yml +0 -117
  209. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_import_users_and_get_job/should_create_an_import_users_job_successfully.yml +0 -60
  210. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_import_users_and_get_job/should_get_the_import_users_job.yml +0 -116
  211. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_create_a_new_verification_email_job.yml +0 -119
  212. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_get_the_completed_verification_email.yml +0 -175
  213. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_reject_an_invalid_client_id.yml +0 -109
  214. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/delete_imported_user.yml +0 -110
  215. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/search_for_connection_id.yml +0 -59
  216. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_log/should_match_the_created_log_entry.yml +0 -265
  217. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_log/should_not_be_empty.yml +0 -265
  218. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_exclude_fields_not_specified.yml +0 -61
  219. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_exclude_the_specified_fields.yml +0 -75
  220. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_have_one_log_entry.yml +0 -76
  221. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_include_the_specified_fields.yml +0 -62
  222. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_from/should_take_one_log_entry.yml +0 -258
  223. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/create_test_user.yml +0 -68
  224. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_disabled_rule.yml +0 -54
  225. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_enabled_rule.yml +0 -54
  226. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_user.yml +0 -54
  227. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_delete_resource_server/should_delete_the_test_server_without_an_error.yml +0 -54
  228. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_patch_resource_server/should_update_the_resource_server_with_the_correct_attributes.yml +0 -61
  229. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_server/should_get_the_test_server.yml +0 -59
  230. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_get_the_test_server.yml +0 -59
  231. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_return_at_least_1_result.yml +0 -59
  232. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_return_the_first_page_of_one_result.yml +0 -64
  233. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/create_test_server.yml +0 -61
  234. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/delete_test_server.yml +0 -54
  235. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_add_role_permissions/should_add_a_Permission_to_the_Role_successfully.yml +0 -69
  236. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_add_role_users/should_add_a_User_to_the_Role_successfully.yml +0 -69
  237. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_delete_role/should_delete_the_Role_successfully.yml +0 -62
  238. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role/should_get_the_Role_successfully.yml +0 -67
  239. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_permissions/should_get_exactly_1_Permission.yml +0 -67
  240. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_permissions/should_get_the_added_Permission_from_the_Role_successfully.yml +0 -67
  241. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_users/should_get_exactly_1_User.yml +0 -67
  242. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_users/should_get_the_added_User_from_the_Role_successfully.yml +0 -67
  243. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_roles/should_get_the_Role_successfully.yml +0 -67
  244. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_remove_role_permissions/should_remove_a_Permission_from_the_Role_successfully.yml +0 -64
  245. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_update_role/should_update_the_Role_successfully.yml +0 -69
  246. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_api.yml +0 -69
  247. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_role.yml +0 -69
  248. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_user.yml +0 -69
  249. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/delete_test_api.yml +0 -62
  250. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/delete_test_user.yml +0 -62
  251. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_delete_rule/should_delete_the_test_disabled_rule_without_an_error.yml +0 -54
  252. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_delete_rule/should_delete_the_test_enabled_rule_without_an_error.yml +0 -54
  253. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_exclude_the_fields_not_specified.yml +0 -62
  254. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_exclude_the_specified_fields.yml +0 -62
  255. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_include_the_specified_fields.yml +0 -61
  256. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/should_get_a_specific_rule.yml +0 -62
  257. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_exclude_fields_not_specified.yml +0 -60
  258. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_include_the_specified_fields.yml +0 -61
  259. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_at_least_1_disabled_rule.yml +0 -63
  260. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_at_least_1_enabled_rule.yml +0 -62
  261. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_paginated_results.yml +0 -128
  262. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/should_return_at_least_1_rule.yml +0 -64
  263. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_update_rule/should_update_the_disabled_rule_to_be_enabled.yml +0 -64
  264. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/create_test_disabled_rule.yml +0 -65
  265. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/create_test_enabled_rule.yml +0 -65
  266. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Stats/_active_users/should_have_at_least_one_active_user.yml +0 -59
  267. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Stats/_daily_stats/should_have_at_least_one_stats_entry_for_the_timeframe.yml +0 -63
  268. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings/should_get_the_tenant_settings.yml +0 -95
  269. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings_with_specific_fields/should_exclude_a_field_not_requested.yml +0 -61
  270. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings_with_specific_fields/should_include_the_field_requested.yml +0 -61
  271. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_update_tenant_settings/should_revert_the_tenant_name.yml +0 -96
  272. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_update_tenant_settings/should_update_the_tenant_settings_with_a_new_tenant_name.yml +0 -96
  273. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/_post_email_verification/should_create_an_email_verification_ticket.yml +0 -63
  274. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/_post_password_change/should_create_a_password_change_ticket.yml +0 -63
  275. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/create_test_user.yml +0 -68
  276. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/delete_test_user.yml +0 -54
  277. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_add_user_permissions/should_add_a_Permissions_for_a_User_successfully.yml +0 -67
  278. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_add_user_roles/should_add_a_Role_to_a_User_successfully.yml +0 -62
  279. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user/should_delete_the_User_successfully.yml +0 -60
  280. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user/should_delete_the_secondary_User_successfully.yml +0 -60
  281. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user_provider/should_attempt_to_delete_the_MFA_provider_for_the_User.yml +0 -60
  282. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_enrollments/should_get_Enrollments_for_a_User_successfully.yml +0 -65
  283. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_permissions/should_get_exactly_1_Permission_for_a_User_successfully.yml +0 -65
  284. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_permissions/should_get_the_correct_Permission_for_a_User_successfully.yml +0 -65
  285. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_roles/should_get_Roles_for_a_User_successfully.yml +0 -65
  286. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_invalidate_browsers/should_invalidate_MFA_browsers_for_the_User_successfully.yml +0 -62
  287. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_link_user_account/should_link_two_Users_successfully.yml +0 -67
  288. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_patch_user/should_patch_the_User_successfully.yml +0 -68
  289. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_remove_user_permissions/should_remove_a_Permission_from_a_User_successfully.yml +0 -62
  290. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_remove_user_roles/should_remove_a_Role_from_a_User_successfully.yml +0 -62
  291. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_unlink_user_account/should_unlink_two_Users_successfully.yml +0 -65
  292. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_exclude_fields_not_indicated.yml +0 -65
  293. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_exclude_the_fields_indicated.yml +0 -65
  294. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_include_the_fields_indicated.yml +0 -65
  295. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/should_retrieve_the_created_user.yml +0 -65
  296. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user_logs/should_get_Logs_for_a_User_successfully.yml +0 -69
  297. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/is_expected_to_find_a_user_with_a_v2_search_engine_query.yml +0 -65
  298. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/is_expected_to_find_a_user_with_a_v3_search_engine_query.yml +0 -65
  299. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_exclude_the_indicated_fields_when_paginated.yml +0 -65
  300. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_include_the_indicated_fields_when_paginated.yml +0 -65
  301. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_not_include_other_fields_when_paginated.yml +0 -65
  302. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_return_the_correct_number_of_results_when_paginated.yml +0 -65
  303. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/should_have_at_least_one_user.yml +0 -65
  304. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_secondary_test_user.yml +0 -67
  305. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_api.yml +0 -67
  306. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_role.yml +0 -67
  307. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_user.yml +0 -67
  308. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/delete_test_api.yml +0 -60
  309. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/delete_test_role.yml +0 -60
  310. data/spec/integration/lib/auth0/api/api_authentication_spec.rb +0 -120
  311. data/spec/integration/lib/auth0/api/v2/api_anomaly_spec.rb +0 -17
  312. data/spec/integration/lib/auth0/api/v2/api_blacklist_spec.rb +0 -27
  313. data/spec/integration/lib/auth0/api/v2/api_client_grants_spec.rb +0 -75
  314. data/spec/integration/lib/auth0/api/v2/api_clients_spec.rb +0 -166
  315. data/spec/integration/lib/auth0/api/v2/api_connections_spec.rb +0 -159
  316. data/spec/integration/lib/auth0/api/v2/api_device_credentials_spec.rb +0 -128
  317. data/spec/integration/lib/auth0/api/v2/api_email_spec.rb +0 -117
  318. data/spec/integration/lib/auth0/api/v2/api_jobs_spec.rb +0 -112
  319. data/spec/integration/lib/auth0/api/v2/api_logs_spec.rb +0 -91
  320. data/spec/integration/lib/auth0/api/v2/api_resource_servers_spec.rb +0 -130
  321. data/spec/integration/lib/auth0/api/v2/api_roles_spec.rb +0 -145
  322. data/spec/integration/lib/auth0/api/v2/api_rules_spec.rb +0 -177
  323. data/spec/integration/lib/auth0/api/v2/api_stats_spec.rb +0 -22
  324. data/spec/integration/lib/auth0/api/v2/api_tenants_spec.rb +0 -59
  325. data/spec/integration/lib/auth0/api/v2/api_tickets_spec.rb +0 -53
  326. data/spec/integration/lib/auth0/api/v2/api_user_blocks_spec.rb +0 -73
  327. data/spec/integration/lib/auth0/api/v2/api_users_spec.rb +0 -300
  328. data/spec/integration/lib/auth0/auth0_client_spec.rb +0 -90
  329. data/spec/lib/auth0/api/authentication_endpoints_spec.rb +0 -678
  330. data/spec/lib/auth0/api/v2/anomaly_spec.rb +0 -26
  331. data/spec/lib/auth0/api/v2/blacklists_spec.rb +0 -25
  332. data/spec/lib/auth0/api/v2/client_grants_spec.rb +0 -76
  333. data/spec/lib/auth0/api/v2/clients_spec.rb +0 -104
  334. data/spec/lib/auth0/api/v2/connections_spec.rb +0 -140
  335. data/spec/lib/auth0/api/v2/device_credentials_spec.rb +0 -73
  336. data/spec/lib/auth0/api/v2/emails_spec.rb +0 -47
  337. data/spec/lib/auth0/api/v2/guardian_spec.rb +0 -154
  338. data/spec/lib/auth0/api/v2/jobs_spec.rb +0 -111
  339. data/spec/lib/auth0/api/v2/logs_spec.rb +0 -48
  340. data/spec/lib/auth0/api/v2/resource_servers_spec.rb +0 -86
  341. data/spec/lib/auth0/api/v2/roles_spec.rb +0 -362
  342. data/spec/lib/auth0/api/v2/rules_spec.rb +0 -95
  343. data/spec/lib/auth0/api/v2/stats_spec.rb +0 -22
  344. data/spec/lib/auth0/api/v2/tenants_spec.rb +0 -26
  345. data/spec/lib/auth0/api/v2/tickets_spec.rb +0 -46
  346. data/spec/lib/auth0/api/v2/user_blocks_spec.rb +0 -52
  347. data/spec/lib/auth0/api/v2/users_by_email_spec.rb +0 -21
  348. data/spec/lib/auth0/api/v2/users_spec.rb +0 -525
  349. data/spec/lib/auth0/client_spec.rb +0 -153
  350. data/spec/lib/auth0/mixins/httpproxy_spec.rb +0 -304
  351. data/spec/lib/auth0/mixins/initializer_spec.rb +0 -30
  352. data/spec/spec_helper.rb +0 -62
  353. data/spec/support/credentials.rb +0 -30
  354. data/spec/support/dummy_class.rb +0 -18
  355. data/spec/support/dummy_class_for_proxy.rb +0 -5
  356. data/spec/support/dummy_class_for_restclient.rb +0 -2
  357. data/spec/support/import_users.json +0 -13
  358. data/spec/support/stub_response.rb +0 -1
@@ -1,678 +0,0 @@
1
- # rubocop:disable Metrics/BlockLength
2
- require 'spec_helper'
3
- describe Auth0::Api::AuthenticationEndpoints do
4
- UP_AUTH = 'Username-Password-Authentication'.freeze
5
-
6
- before :all do
7
- dummy_instance = DummyClass.new
8
- dummy_instance.extend(Auth0::Api::AuthenticationEndpoints)
9
-
10
- @instance = dummy_instance
11
- end
12
-
13
- subject { @instance }
14
-
15
- context '.api_token' do
16
- it { expect(@instance).to respond_to(:api_token) }
17
- it "is expected to POST to '/oauth/token'" do
18
- allow(@instance).to receive(:post).with(
19
- '/oauth/token',
20
- grant_type: 'client_credentials',
21
- client_id: @instance.client_id,
22
- client_secret: @instance.client_secret,
23
- audience: @instance.audience,
24
- ).and_return('access_token' => 'AccessToken')
25
-
26
- expect(@instance.api_token.token).to eql 'AccessToken'
27
- end
28
-
29
- it "is expected to POST to '/oauth/token' with a custom audience" do
30
- allow(@instance).to receive(:post).with(
31
- '/oauth/token',
32
- grant_type: 'client_credentials',
33
- client_id: @instance.client_id,
34
- client_secret: @instance.client_secret,
35
- audience: '__test_audience__',
36
- ).and_return('access_token' => 'AccessToken')
37
-
38
- expect(
39
- @instance.api_token(audience: '__test_audience__').token
40
- ).to eql 'AccessToken'
41
- end
42
- end
43
-
44
- context '.obtain_access_token' do
45
- it { expect(@instance).to respond_to(:obtain_access_token) }
46
- it "is expected to make post request to '/oauth/token'" do
47
- allow(@instance).to receive(:post).with(
48
- '/oauth/token', client_id: @instance.client_id, client_secret: @instance.client_secret, grant_type: 'client_credentials'
49
- )
50
- .and_return('access_token' => 'AccessToken')
51
-
52
- expect(@instance).to receive(:post).with(
53
- '/oauth/token', client_id: @instance.client_id, client_secret: @instance.client_secret, grant_type: 'client_credentials'
54
- )
55
- expect(@instance.obtain_access_token).to eql 'AccessToken'
56
- end
57
- end
58
-
59
- context '.obtain_access_token social' do
60
- it { expect(@instance).to respond_to(:obtain_access_token) }
61
- it "is expected to make post request to '/oauth/access_token'" do
62
- allow(@instance).to receive(:post).with(
63
- '/oauth/access_token', client_id: @instance.client_id, access_token: 'access_token', connection: 'facebook',
64
- scope: 'openid'
65
- )
66
- .and_return('access_token' => 'AccessToken')
67
- expect(@instance).to receive(:post).with(
68
- '/oauth/access_token', client_id: @instance.client_id, access_token: 'access_token', connection: 'facebook',
69
- scope: 'openid'
70
- )
71
- expect(@instance.obtain_access_token('access_token', 'facebook', 'openid')).to eql 'AccessToken'
72
- end
73
- end
74
-
75
- context '.obtain_user_tokens' do
76
- it { expect(@instance).to respond_to(:obtain_user_tokens) }
77
- it "is expected to make post request to '/oauth/token'" do
78
- allow(@instance).to receive(:post).with(
79
- '/oauth/token', client_id: @instance.client_id, client_secret: @instance.client_secret, grant_type: 'authorization_code',
80
- connection: 'facebook', code: 'code', scope: 'openid', redirect_uri: 'uri'
81
- )
82
- .and_return('user_tokens' => 'UserToken')
83
- expect(@instance).to receive(:post).with(
84
- '/oauth/token', client_id: @instance.client_id, client_secret: @instance.client_secret, grant_type: 'authorization_code',
85
- connection: 'facebook', code: 'code', scope: 'openid', redirect_uri: 'uri'
86
- )
87
- expect(@instance.obtain_user_tokens('code', 'uri')['user_tokens']).to eq 'UserToken'
88
- end
89
- it { expect { @instance.obtain_user_tokens('', '') }.to raise_error 'Must supply a valid code' }
90
- it { expect { @instance.obtain_user_tokens('code', '') }.to raise_error 'Must supply a valid redirect_uri' }
91
- end
92
-
93
-
94
- context '.exchange_auth_code_for_tokens' do
95
- it { is_expected.to respond_to(:exchange_auth_code_for_tokens) }
96
-
97
- it 'is expected to make post request to /oauth/token with default params' do
98
- allow(@instance).to receive(:post).with(
99
- '/oauth/token',
100
- client_id: @instance.client_id,
101
- client_secret: @instance.client_secret,
102
- grant_type: 'authorization_code',
103
- code: '__test_auth_code__',
104
- redirect_uri: nil
105
- ).and_return('access_token' => 'AccessToken')
106
-
107
- is_expected.to receive(:post).with(
108
- '/oauth/token',
109
- client_id: @instance.client_id,
110
- client_secret: @instance.client_secret,
111
- grant_type: 'authorization_code',
112
- code: '__test_auth_code__',
113
- redirect_uri: nil
114
- )
115
-
116
- expect(
117
- @instance.exchange_auth_code_for_tokens(
118
- '__test_auth_code__'
119
- )['access_token']
120
- ).to eq 'AccessToken'
121
- end
122
-
123
- it 'is expected to make post request to /oauth/token with custom params' do
124
- allow(@instance).to receive(:post).with(
125
- '/oauth/token',
126
- grant_type: 'authorization_code',
127
- client_id: '_test_custom_client_id__',
128
- client_secret: '_test_custom_client_secret__',
129
- code: '__test_auth_code__',
130
- redirect_uri: '__test_redirect_uri__'
131
- ).and_return('access_token' => 'AccessToken')
132
-
133
- is_expected.to receive(:post).with(
134
- '/oauth/token',
135
- grant_type: 'authorization_code',
136
- client_id: '_test_custom_client_id__',
137
- client_secret: '_test_custom_client_secret__',
138
- code: '__test_auth_code__',
139
- redirect_uri: '__test_redirect_uri__'
140
- )
141
-
142
- expect(
143
- @instance.exchange_auth_code_for_tokens(
144
- '__test_auth_code__',
145
- redirect_uri: '__test_redirect_uri__',
146
- client_id: '_test_custom_client_id__',
147
- client_secret: '_test_custom_client_secret__'
148
- )['access_token']
149
- ).to eq 'AccessToken'
150
- end
151
-
152
- it 'is expected to raise an error when the code is empty' do
153
- expect do
154
- @instance.exchange_auth_code_for_tokens(nil)
155
- end.to raise_error 'Must provide an authorization code'
156
- end
157
- end
158
-
159
- context '.exchange_refresh_token' do
160
- it { is_expected.to respond_to(:exchange_refresh_token) }
161
-
162
- it 'is expected to make post request to /oauth/token with default params' do
163
- allow(@instance).to receive(:post).with(
164
- '/oauth/token',
165
- grant_type: 'refresh_token',
166
- client_id: @instance.client_id,
167
- client_secret: @instance.client_secret,
168
- refresh_token: '__test_refresh_token__'
169
- ).and_return('access_token' => 'AccessToken')
170
-
171
- is_expected.to receive(:post).with(
172
- '/oauth/token',
173
- grant_type: 'refresh_token',
174
- client_id: @instance.client_id,
175
- client_secret: @instance.client_secret,
176
- refresh_token: '__test_refresh_token__'
177
- )
178
-
179
- expect(
180
- @instance.exchange_refresh_token(
181
- '__test_refresh_token__'
182
- )['access_token']
183
- ).to eq 'AccessToken'
184
- end
185
-
186
-
187
- it 'is expected to make post request to /oauth/token with custom params' do
188
- allow(@instance).to receive(:post).with(
189
- '/oauth/token',
190
- grant_type: 'refresh_token',
191
- client_id: '_test_custom_client_id__',
192
- client_secret: '_test_custom_client_secret__',
193
- refresh_token: '__test_refresh_token__'
194
- ).and_return('access_token' => 'AccessToken')
195
-
196
- is_expected.to receive(:post).with(
197
- '/oauth/token',
198
- grant_type: 'refresh_token',
199
- client_id: '_test_custom_client_id__',
200
- client_secret: '_test_custom_client_secret__',
201
- refresh_token: '__test_refresh_token__'
202
- )
203
-
204
- expect(
205
- @instance.exchange_refresh_token(
206
- '__test_refresh_token__',
207
- client_id: '_test_custom_client_id__',
208
- client_secret: '_test_custom_client_secret__'
209
- )['access_token']
210
- ).to eq 'AccessToken'
211
- end
212
-
213
- it 'is expected to raise an error when the refresh_token is empty' do
214
- expect do
215
- @instance.exchange_refresh_token(nil)
216
- end.to raise_error 'Must provide a refresh token'
217
- end
218
- end
219
-
220
- context '.login_with_resource_owner' do
221
- it 'should respond to the login_with_resource_owner method' do
222
- expect(@instance).to respond_to(:login_with_resource_owner)
223
- end
224
-
225
- it 'should make post to /oauth/token with default params' do
226
- allow(@instance).to receive(:post).with(
227
- '/oauth/token',
228
- username: 'test@test.com',
229
- password: 'test12345',
230
- client_id: @instance.client_id,
231
- client_secret: @instance.client_secret,
232
- realm: nil,
233
- audience: nil,
234
- scope: 'openid',
235
- grant_type: 'password'
236
- ).and_return('access_token' => 'AccessToken')
237
-
238
- expect(
239
- @instance.login_with_resource_owner('test@test.com', 'test12345').token
240
- ).to eq 'AccessToken'
241
- end
242
-
243
- it 'should make post to /oauth/token with custom params' do
244
-
245
- allow(@instance).to receive(:post).with(
246
- '/oauth/token',
247
- username: 'test@test.com',
248
- password: 'test12345',
249
- client_id: '__custom_client_id__',
250
- client_secret: '__custom_client_secret_',
251
- realm: '__custom_realm__',
252
- audience: '__custom_audience__',
253
- scope: 'openid email',
254
- grant_type: 'http://auth0.com/oauth/grant-type/password-realm'
255
- ).and_return('access_token' => 'AccessToken')
256
-
257
- expect(
258
- @instance.login_with_resource_owner(
259
- 'test@test.com',
260
- 'test12345',
261
- client_id: '__custom_client_id__',
262
- client_secret: '__custom_client_secret_',
263
- realm: '__custom_realm__',
264
- audience: '__custom_audience__',
265
- scope: 'openid email'
266
- ).token
267
- ).to eq 'AccessToken'
268
- end
269
-
270
- it 'should raise an error with a blank username' do
271
- expect do
272
- @instance.login_with_resource_owner('', 'password')
273
- end.to raise_error 'Must supply a valid login_name'
274
- end
275
-
276
- it 'should raise an error with a blank password' do
277
- expect do
278
- @instance.login_with_resource_owner('username', '')
279
- end.to raise_error 'Must supply a valid password'
280
- end
281
- end
282
-
283
- context '.login' do
284
- it { expect(@instance).to respond_to(:login) }
285
- it 'is expected to make post to /oauth/token' do
286
- expect(@instance).to receive(:post).with(
287
- '/oauth/token',
288
- client_id: @instance.client_id,
289
- username: 'test@test.com',
290
- client_secret: @instance.client_secret,
291
- password: 'test12345', scope: 'openid', connection: 'Username-Password-Authentication',
292
- grant_type: 'password', id_token: nil, device: nil
293
- )
294
- @instance.login('test@test.com', 'test12345')
295
- end
296
- it { expect { @instance.login('', '') }.to raise_error 'Must supply a valid username' }
297
- it { expect { @instance.login('username', '') }.to raise_error 'Must supply a valid password' }
298
- end
299
-
300
- # Auth0::API::AuthenticationEndpoints.signup
301
- context '.signup' do
302
- it { expect(@instance).to respond_to(:signup) }
303
-
304
- it 'is expected to make a post request to /dbconnections/signup' do
305
- expect(@instance).to receive(:post).with(
306
- '/dbconnections/signup',
307
- client_id: @instance.client_id,
308
- email: 'test@test.com',
309
- password: 'password',
310
- connection: 'User'
311
- )
312
- @instance.signup('test@test.com', 'password', 'User')
313
- end
314
-
315
- it 'is expected to raise an error with an empty email' do
316
- expect do
317
- @instance.signup('', '')
318
- end.to raise_error 'Must supply a valid email'
319
- end
320
-
321
- it 'is expected to raise an error with an empty password' do
322
- expect do
323
- @instance.signup('email', '')
324
- end.to raise_error 'Must supply a valid password'
325
- end
326
- end
327
-
328
- # Auth0::API::AuthenticationEndpoints.change_password
329
- context '.change_password' do
330
- it { expect(@instance).to respond_to(:change_password) }
331
-
332
- it 'is expected to make post to /dbconnections/change_password' do
333
- expect(@instance).to receive(:post).with(
334
- '/dbconnections/change_password',
335
- client_id: @instance.client_id,
336
- email: 'test@test.com',
337
- password: 'password',
338
- connection: 'User'
339
- )
340
- @instance.change_password('test@test.com', 'password', 'User')
341
- end
342
-
343
- it 'is expected to raise an error with an empty email' do
344
- expect do
345
- @instance.change_password('', '', '')
346
- end.to raise_error 'Must supply a valid email'
347
- end
348
- end
349
-
350
- # Auth0::API::AuthenticationEndpoints.start_passwordless_email_flow
351
- context '.start_passwordless_email_flow' do
352
- it { expect(@instance).to respond_to(:start_passwordless_email_flow) }
353
-
354
- it 'is expected to make post to /passwordless/start' do
355
- expect(@instance).to receive(:post).with(
356
- '/passwordless/start',
357
- client_id: @instance.client_id,
358
- client_secret: @instance.client_secret,
359
- connection: 'email',
360
- email: 'test@test.com',
361
- send: 'code',
362
- authParams: {
363
- scope: 'scope',
364
- protocol: 'protocol'
365
- }
366
- )
367
- @instance.start_passwordless_email_flow(
368
- 'test@test.com',
369
- 'code',
370
- scope: 'scope',
371
- protocol: 'protocol'
372
- )
373
- end
374
-
375
- it 'is expected to raise an error with an empty email' do
376
- expect do
377
- @instance.start_passwordless_email_flow('', '', '')
378
- end.to raise_error 'Must supply a valid email'
379
- end
380
- end
381
-
382
- # Auth0::API::AuthenticationEndpoints.start_passwordless_sms_flow
383
- context '.start_passwordless_sms_flow' do
384
- let(:phone_number) { Faker::PhoneNumber.cell_phone }
385
-
386
- it { expect(@instance).to respond_to(:start_passwordless_sms_flow) }
387
-
388
- it 'is expected to make post to /passwordless/start' do
389
- expect(@instance).to receive(:post).with(
390
- '/passwordless/start',
391
- client_id: @instance.client_id,
392
- client_secret: @instance.client_secret,
393
- connection: 'sms',
394
- phone_number: phone_number
395
- )
396
- @instance.start_passwordless_sms_flow(phone_number)
397
- end
398
-
399
- it 'is expected to raise an error with an empty phone number' do
400
- expect do
401
- @instance.start_passwordless_sms_flow('')
402
- end.to raise_error 'Must supply a valid phone number'
403
- end
404
- end
405
-
406
- context '.phone_login' do
407
- let(:phone_number) { Faker::PhoneNumber.cell_phone }
408
- let(:code) { Faker::Number.number(10) }
409
- it { expect(@instance).to respond_to(:phone_login) }
410
- it 'is expected to make post to /oauth/ro' do
411
- expect(@instance).to receive(:post).with(
412
- '/oauth/ro',
413
- client_id: @instance.client_id, username: phone_number,
414
- password: code, connection: 'sms',
415
- scope: 'openid', grant_type: 'password'
416
- )
417
- @instance.phone_login(phone_number, code)
418
- end
419
- it { expect { @instance.phone_login('', '') }.to raise_error 'Must supply a valid phone number' }
420
- it { expect { @instance.phone_login('phone', '') }.to raise_error 'Must supply a valid code' }
421
- end
422
-
423
- # Auth0::API::AuthenticationEndpoints.saml_metadata
424
- context '.saml_metadata' do
425
- it { expect(@instance).to respond_to(:saml_metadata) }
426
-
427
- it 'is expected to make post to SAMLP metadata endpoint' do
428
- expect(@instance).to receive(:get).with(
429
- "/samlp/metadata/#{@instance.client_id}"
430
- )
431
- @instance.saml_metadata
432
- end
433
- end
434
-
435
- # Auth0::API::AuthenticationEndpoints.wsfed_metadata
436
- context '.wsfed_metadata' do
437
- it { expect(@instance).to respond_to(:wsfed_metadata) }
438
-
439
- it 'is expected to make post to WS-Fed metadata endpoint' do
440
- expect(@instance).to receive(:get).with(
441
- '/wsfed/FederationMetadata/2007-06/FederationMetadata.xml'
442
- )
443
- @instance.wsfed_metadata
444
- end
445
- end
446
-
447
- context '.token_info' do
448
- it { expect(@instance).to respond_to(:token_info) }
449
- it 'is expected to make post to /tokeinfo' do
450
- expect(@instance).to receive(:post).with('/tokeninfo', id_token: 'SomerandomToken')
451
- @instance.token_info('SomerandomToken')
452
- end
453
- it { expect { @instance.token_info('') }.to raise_error 'Must supply a valid id_token' }
454
- end
455
-
456
- context '.refresh_delegation' do
457
- it { expect(@instance).to respond_to(:refresh_delegation) }
458
- it "is expected to make post request to '/delegation'" do
459
- expect(@instance).to receive(:post).with(
460
- '/delegation',
461
- client_id: @instance.client_id,
462
- grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
463
- refresh_token: 'id_token', target: '', api_type: '', scope: '',
464
- additional_parameter: 'parameter'
465
- )
466
- @instance.refresh_delegation('id_token', '', '', '', additional_parameter: 'parameter')
467
- end
468
- it { expect { @instance.refresh_delegation('', '', '', '') }.to raise_error 'Must supply a valid token to refresh' }
469
- end
470
-
471
- context '.delegation' do
472
- it { expect(@instance).to respond_to(:delegation) }
473
- it "is expected to make post request to '/delegation'" do
474
- expect(@instance).to receive(:post).with(
475
- '/delegation',
476
- client_id: @instance.client_id,
477
- grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
478
- id_token: 'token',
479
- target: 'target',
480
- scope: '',
481
- api_type: 'app'
482
- )
483
- @instance.delegation('token', 'target', '')
484
- end
485
- it "is expected to make post request to '/delegation'
486
- with specified api_type" do
487
- expect(@instance).to receive(:post).with(
488
- '/delegation',
489
- client_id: @instance.client_id,
490
- grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
491
- id_token: 'id_token', target: '', scope: '',
492
- api_type: 'salesforce_api'
493
- )
494
- @instance.delegation('id_token', '', '', 'salesforce_api')
495
- end
496
- it 'allows to pass extra parameters' do
497
- expect(@instance).to receive(:post).with(
498
- '/delegation',
499
- client_id: @instance.client_id,
500
- grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
501
- id_token: 'id_token', target: '', scope: '', api_type: '',
502
- community_name: 'test-community', community_url: 'test-url'
503
- )
504
- @instance.delegation(
505
- 'id_token', '', '', '',
506
- community_name: 'test-community', community_url: 'test-url'
507
- )
508
- end
509
- it { expect { @instance.delegation('', nil, nil, nil) }.to raise_error 'Must supply a valid id_token' }
510
- end
511
-
512
- context '.impersonate' do
513
- let(:user_id) { 'some_user_id' }
514
- let(:impersonator_id) { 'some_other_user_id' }
515
- let(:app_client_id) { 'app_client_id' }
516
- it { expect(@instance).to respond_to(:impersonate) }
517
- it do
518
- expect { @instance.impersonate('', app_client_id, impersonator_id, {}) }.to raise_error(
519
- 'Must supply a valid user_id'
520
- )
521
- end
522
- it do
523
- expect { @instance.impersonate(user_id, app_client_id, '', {}) }.to raise_error(
524
- 'Must supply a valid impersonator_id'
525
- )
526
- end
527
- it do
528
- expect { @instance.impersonate(user_id, '', impersonator_id, {}) }.to raise_error(
529
- 'Must supply a valid app_client_id'
530
- )
531
- end
532
- end
533
-
534
- context '.unlink_user' do
535
- it { expect(@instance).to respond_to(:unlink_user) }
536
- it 'is expected to make post to /unlink' do
537
- expect(@instance).to receive(:post).with('/unlink', access_token: 'access-token', user_id: 'user-id')
538
- @instance.unlink_user('access-token', 'user-id')
539
- end
540
- it { expect { @instance.unlink_user('', '') }.to raise_error 'Must supply a valid access_token' }
541
- it { expect { @instance.unlink_user('token', '') }.to raise_error 'Must supply a valid user_id' }
542
- end
543
-
544
- context '.user_info' do
545
- it { is_expected.to respond_to(:user_info) }
546
- it 'is expected to make post to /userinfo' do
547
- is_expected.to receive(:get).with('/userinfo')
548
- subject.user_info
549
- end
550
- end
551
-
552
- context '.userinfo' do
553
- it { is_expected.to respond_to(:user_info) }
554
- it 'is expected to make a GET request to /userinfo' do
555
- is_expected.to receive(:get).with('/userinfo', {}, {'Authorization' => 'Bearer access-token'})
556
- subject.userinfo 'access-token'
557
- end
558
- end
559
-
560
- context '.authorization_url' do
561
- let(:redirect_uri) { 'http://redirect.com' }
562
- it { expect(@instance).to respond_to(:authorization_url) }
563
- it 'is expected to return an authorization url' do
564
- expect(@instance.authorization_url(redirect_uri).to_s).to eq(
565
- "https://#{@instance.domain}/authorize?client_id=#{@instance.client_id}&response_type=code&"\
566
- 'redirect_uri=http%3A%2F%2Fredirect.com'
567
- )
568
- end
569
- let(:additional_parameters) { { additional_parameters: { aparam1: 'test1' } } }
570
- it 'is expected to return an authorization url with additionalParameters' do
571
- expect(@instance.authorization_url(redirect_uri, additional_parameters).to_s).to eq(
572
- "https://#{@instance.domain}/authorize?client_id=#{@instance.client_id}&response_type=code&"\
573
- 'redirect_uri=http%3A%2F%2Fredirect.com&aparam1=test1'
574
- )
575
- end
576
- let(:state) { { state: 'state1' } }
577
- it 'is expected to return an authorization url with additionalParameters' do
578
- expect(@instance.authorization_url(redirect_uri, state).to_s).to eq(
579
- "https://#{@instance.domain}/authorize?client_id=#{@instance.client_id}&response_type=code&"\
580
- 'redirect_uri=http%3A%2F%2Fredirect.com&state=state1'
581
- )
582
- end
583
- let(:connection) { { connection: 'connection-1' } }
584
- it 'is expected to return an authorization url with additionalParameters' do
585
- expect(@instance.authorization_url(redirect_uri, connection).to_s).to eq(
586
- "https://#{@instance.domain}/authorize?client_id=#{@instance.client_id}&response_type=code&"\
587
- 'connection=connection-1&redirect_uri=http%3A%2F%2Fredirect.com'
588
- )
589
- end
590
- it { expect { @instance.authorization_url('', '') }.to raise_error 'Must supply a valid redirect_uri' }
591
- end
592
-
593
- # Auth0::API::AuthenticationEndpoints.logout_url
594
- context '.logout_url' do
595
- let(:return_to) { 'http://returnto.com' }
596
-
597
- it { expect(@instance).to respond_to(:logout_url) }
598
-
599
- it 'is expected to return a logout url' do
600
- expect(@instance.logout_url(return_to).to_s).to eq(
601
- "https://#{@instance.domain}/v2/logout?" \
602
- 'returnTo=http%3A%2F%2Freturnto.com'
603
- )
604
- end
605
-
606
- it 'is expected to return a logout url with a client ID' do
607
- expect(@instance.logout_url(return_to, include_client: true).to_s).to eq(
608
- "https://#{@instance.domain}/v2/logout" +
609
- "?returnTo=http%3A%2F%2Freturnto.com&client_id=#{@instance.client_id}"
610
- )
611
- end
612
-
613
- it 'is expected to return a logout url with federated parameter' do
614
- expect(@instance.logout_url(return_to, federated: true).to_s).to eq(
615
- "https://#{@instance.domain}/v2/logout?" \
616
- 'returnTo=http%3A%2F%2Freturnto.com&federated=1'
617
- )
618
- end
619
- end
620
-
621
- # Auth0::API::AuthenticationEndpoints.samlp_url
622
- context '.samlp_url' do
623
- it { expect(@instance).to respond_to(:samlp_url) }
624
-
625
- it 'is expected to get the samlp url' do
626
- expect(@instance.samlp_url.to_s).to eq(
627
- "https://#{@instance.domain}/samlp/#{@instance.client_id}" \
628
- '?connection=Username-Password-Authentication'
629
- )
630
- end
631
-
632
- it 'is expected to get the samlp url with fb connection' do
633
- expect(@instance.samlp_url('facebook').to_s).to eq(
634
- "https://#{@instance.domain}/samlp/#{@instance.client_id}" \
635
- '?connection=facebook'
636
- )
637
- end
638
- end
639
-
640
- # Auth0::API::AuthenticationEndpoints.wsfed_url
641
- context '.wsfed_url' do
642
- it { expect(@instance).to respond_to(:wsfed_url) }
643
-
644
- it 'is expected to get the wsfed url' do
645
- expect(@instance.wsfed_url.to_s).to eq(
646
- "https://#{@instance.domain}/wsfed/#{@instance.client_id}" \
647
- "?whr=#{UP_AUTH}"
648
- )
649
- end
650
-
651
- it 'is expected to get the wsfed url with fb connection' do
652
- expect(@instance.wsfed_url('facebook').to_s).to eq(
653
- "https://#{@instance.domain}/wsfed/#{@instance.client_id}?whr=facebook"
654
- )
655
- end
656
-
657
- it 'is expected to get the wsfed url with wctx' do
658
- expect(@instance.wsfed_url(UP_AUTH, {wctx: 'wctx_test'}).to_s).to eq(
659
- "https://#{@instance.domain}/wsfed/#{@instance.client_id}" \
660
- "?whr=#{UP_AUTH}&wctx=wctx_test"
661
- )
662
- end
663
-
664
- it 'is expected to get the wsfed url with wtrealm and wreply' do
665
- expect(@instance.wsfed_url(
666
- UP_AUTH,
667
- {
668
- wtrealm: 'wtrealm_test',
669
- wreply: 'wreply_test'
670
- }
671
- ).to_s).to eq(
672
- "https://#{@instance.domain}/wsfed/?whr=#{UP_AUTH}" \
673
- '&wtrealm=wtrealm_test&wreply=wreply_test'
674
- )
675
- end
676
- end
677
- end
678
- # rubocop:enable Metrics/BlockLength