auth0 4.4.0 → 5.1.2

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 (289) hide show
  1. checksums.yaml +4 -4
  2. data/.bundle/config +3 -2
  3. data/.circleci/config.yml +44 -0
  4. data/.env.example +2 -0
  5. data/.github/CODEOWNERS +1 -0
  6. data/.github/ISSUE_TEMPLATE/config.yml +8 -0
  7. data/.github/ISSUE_TEMPLATE/feature_request.md +39 -0
  8. data/.github/ISSUE_TEMPLATE/report_a_bug.md +55 -0
  9. data/.github/PULL_REQUEST_TEMPLATE.md +35 -0
  10. data/.github/stale.yml +20 -0
  11. data/.gitignore +1 -2
  12. data/.rubocop.yml +2 -0
  13. data/.yardoc/checksums +22 -0
  14. data/.yardoc/complete +0 -0
  15. data/.yardoc/object_types +0 -0
  16. data/.yardoc/objects/root.dat +0 -0
  17. data/.yardoc/proxy_types +0 -0
  18. data/CHANGELOG.md +334 -19
  19. data/CODE_OF_CONDUCT.md +3 -0
  20. data/DEPLOYMENT.md +56 -9
  21. data/Gemfile +10 -3
  22. data/README.md +260 -37
  23. data/Rakefile +4 -23
  24. data/auth0.gemspec +10 -9
  25. data/codecov.yml +22 -0
  26. data/examples/ruby-api/.gitignore +0 -6
  27. data/lib/auth0/algorithm.rb +5 -0
  28. data/lib/auth0/api/authentication_endpoints.rb +244 -237
  29. data/lib/auth0/api/v2/anomaly.rb +36 -0
  30. data/lib/auth0/api/v2/branding.rb +66 -0
  31. data/lib/auth0/api/v2/client_grants.rb +14 -5
  32. data/lib/auth0/api/v2/clients.rb +9 -6
  33. data/lib/auth0/api/v2/connections.rb +19 -7
  34. data/lib/auth0/api/v2/device_credentials.rb +5 -4
  35. data/lib/auth0/api/v2/guardian.rb +142 -0
  36. data/lib/auth0/api/v2/jobs.rb +77 -13
  37. data/lib/auth0/api/v2/log_streams.rb +78 -0
  38. data/lib/auth0/api/v2/logs.rb +11 -11
  39. data/lib/auth0/api/v2/organizations.rb +335 -0
  40. data/lib/auth0/api/v2/prompts.rb +70 -0
  41. data/lib/auth0/api/v2/resource_servers.rb +32 -8
  42. data/lib/auth0/api/v2/roles.rb +172 -0
  43. data/lib/auth0/api/v2/rules.rb +6 -2
  44. data/lib/auth0/api/v2/tickets.rb +55 -8
  45. data/lib/auth0/api/v2/users.rb +168 -28
  46. data/lib/auth0/api/v2/users_by_email.rb +3 -2
  47. data/lib/auth0/api/v2.rb +16 -2
  48. data/lib/auth0/client.rb +1 -1
  49. data/lib/auth0/exception.rb +34 -9
  50. data/lib/auth0/mixins/access_token_struct.rb +20 -0
  51. data/lib/auth0/mixins/api_token_struct.rb +10 -0
  52. data/lib/auth0/mixins/headers.rb +35 -0
  53. data/lib/auth0/mixins/httpproxy.rb +37 -14
  54. data/lib/auth0/mixins/initializer.rb +10 -26
  55. data/lib/auth0/mixins/permission_struct.rb +3 -0
  56. data/lib/auth0/mixins/validation.rb +346 -0
  57. data/lib/auth0/mixins.rb +9 -1
  58. data/lib/auth0/version.rb +1 -1
  59. data/lib/auth0.rb +1 -0
  60. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_change_password/should_trigger_a_password_reset.yml +63 -0
  61. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_incorrect_email.yml +54 -0
  62. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_incorrect_password.yml +54 -0
  63. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_invalid_audience.yml +55 -0
  64. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_login_successfully_with_a_custom_audience.yml +117 -0
  65. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_login_successfully_with_a_default_scope.yml +119 -0
  66. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_saml_metadata/should_retrieve_SAML_metadata.yml +57 -0
  67. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_userinfo/should_fail_as_not_authorized.yml +55 -0
  68. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_userinfo/should_return_the_userinfo.yml +118 -0
  69. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_wsfed_metadata/should_retrieve_WSFED_metadata.yml +55 -0
  70. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/create_test_user.yml +58 -0
  71. data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/delete_test_user.yml +54 -0
  72. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Anomaly/_check_if_ip_is_blocked/should_return_200_response_code.yml +65 -0
  73. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Anomaly/_remove_ip_block/should_remove_an_IP_successfully.yml +60 -0
  74. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Blacklists/_add_token_to_blacklist/should_add_a_token_to_the_blacklist.yml +56 -0
  75. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Blacklists/_blacklisted_tokens/should_get_the_added_token_from_the_blacklist.yml +59 -0
  76. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_at_least_1_result.yml +62 -0
  77. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_the_first_page_of_one_result.yml +66 -0
  78. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_the_test_client_grant.yml +62 -0
  79. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_delete_client_grant/should_delete_the_test_client_grant.yml +54 -0
  80. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_patch_client_grant/should_update_the_test_client_grant.yml +64 -0
  81. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/create_test_client.yml +118 -0
  82. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/create_test_client_grant.yml +64 -0
  83. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/delete_test_client.yml +54 -0
  84. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/delete_test_client_grant.yml +54 -0
  85. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/_filters/should_exclude_and_include_fields_properly.yml +91 -0
  86. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/_filters/should_include_the_specified_fields.yml +63 -0
  87. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/should_get_the_test_client.yml +92 -0
  88. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_exclude_fields_not_specified.yml +60 -0
  89. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_exclude_the_specified_fields.yml +132 -0
  90. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_include_the_specified_fields.yml +63 -0
  91. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_paginate_results.yml +65 -0
  92. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/should_get_at_least_one_client.yml +132 -0
  93. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_delete_client/should_delete_the_test_client_without_an_error.yml +54 -0
  94. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_patch_client/should_update_the_client_with_the_correct_attributes.yml +94 -0
  95. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/create_test_client.yml +118 -0
  96. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/_filters/should_exclude_the_fields_indicated.yml +63 -0
  97. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/_filters/should_include_the_fields_indicated.yml +61 -0
  98. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/should_find_the_correct_connection.yml +63 -0
  99. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_include_previously-created_connection_when_filtered.yml +59 -0
  100. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_should_exclude_the_fields_indicated_from_filtered_results.yml +59 -0
  101. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_should_include_the_fields_indicated_from_filtered_results.yml +59 -0
  102. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/should_include_the_previously_created_connection.yml +59 -0
  103. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/should_not_be_empty.yml +59 -0
  104. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_delete_connection/should_delete_the_connection.yml +54 -0
  105. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_delete_connection_user/should_delete_the_user_created.yml +110 -0
  106. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_update_connection/should_update_the_connection.yml +66 -0
  107. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/create_test_connection.yml +65 -0
  108. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/create_test_user.yml +68 -0
  109. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_delete_device_credential/should_delete_the_test_credential_without_an_error.yml +54 -0
  110. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_device_credentials/_filter_by_type/should_exclude_the_test_credential.yml +59 -0
  111. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_device_credentials/should_have_at_least_1_entry.yml +62 -0
  112. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_device_credentials/should_include_the_test_credential.yml +62 -0
  113. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/create_test_credential.yml +62 -0
  114. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/create_test_user.yml +68 -0
  115. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/delete_test_credential.yml +54 -0
  116. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/delete_test_user.yml +54 -0
  117. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_configure_provider/should_configure_a_new_email_provider.yml +63 -0
  118. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_delete_provider/should_delete_the_existing_email_provider_without_an_error.yml +54 -0
  119. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_delete_provider/should_throw_an_error_trying_to_get_the_email_provider.yml +51 -0
  120. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/_filters/should_get_the_existing_email_provider_with_specific_fields.yml +60 -0
  121. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/_filters/should_get_the_existing_email_provider_without_specific_fields.yml +61 -0
  122. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/should_get_the_existing_email_provider.yml +61 -0
  123. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_update_provider/should_update_the_existing_email_provider.yml +63 -0
  124. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/delete_existing_provider.yml +54 -0
  125. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_export_users_and_get_job/should_create_an_export_users_job_successfully.yml +61 -0
  126. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_export_users_and_get_job/should_get_the_export_users_job.yml +117 -0
  127. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_import_users_and_get_job/should_create_an_import_users_job_successfully.yml +60 -0
  128. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_import_users_and_get_job/should_get_the_import_users_job.yml +116 -0
  129. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_create_a_new_verification_email_job.yml +119 -0
  130. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_get_the_completed_verification_email.yml +175 -0
  131. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_reject_an_invalid_client_id.yml +109 -0
  132. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/delete_imported_user.yml +110 -0
  133. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/search_for_connection_id.yml +59 -0
  134. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_log/should_match_the_created_log_entry.yml +265 -0
  135. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_log/should_not_be_empty.yml +265 -0
  136. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_exclude_fields_not_specified.yml +61 -0
  137. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_exclude_the_specified_fields.yml +75 -0
  138. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_have_one_log_entry.yml +76 -0
  139. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_include_the_specified_fields.yml +62 -0
  140. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_from/should_take_one_log_entry.yml +258 -0
  141. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/create_test_user.yml +68 -0
  142. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_disabled_rule.yml +54 -0
  143. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_enabled_rule.yml +54 -0
  144. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_user.yml +54 -0
  145. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_delete_resource_server/should_delete_the_test_server_without_an_error.yml +54 -0
  146. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_patch_resource_server/should_update_the_resource_server_with_the_correct_attributes.yml +61 -0
  147. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_server/should_get_the_test_server.yml +59 -0
  148. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_get_the_test_server.yml +59 -0
  149. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_return_at_least_1_result.yml +59 -0
  150. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_return_the_first_page_of_one_result.yml +64 -0
  151. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/create_test_server.yml +61 -0
  152. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/delete_test_server.yml +54 -0
  153. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_add_role_permissions/should_add_a_Permission_to_the_Role_successfully.yml +69 -0
  154. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_add_role_users/should_add_a_User_to_the_Role_successfully.yml +69 -0
  155. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_delete_role/should_delete_the_Role_successfully.yml +62 -0
  156. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role/should_get_the_Role_successfully.yml +67 -0
  157. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_permissions/should_get_exactly_1_Permission.yml +67 -0
  158. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_permissions/should_get_the_added_Permission_from_the_Role_successfully.yml +67 -0
  159. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_users/should_get_exactly_1_User.yml +67 -0
  160. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_users/should_get_the_added_User_from_the_Role_successfully.yml +67 -0
  161. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_roles/should_get_the_Role_successfully.yml +67 -0
  162. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_remove_role_permissions/should_remove_a_Permission_from_the_Role_successfully.yml +64 -0
  163. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_update_role/should_update_the_Role_successfully.yml +69 -0
  164. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_api.yml +69 -0
  165. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_role.yml +69 -0
  166. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_user.yml +69 -0
  167. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/delete_test_api.yml +62 -0
  168. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/delete_test_user.yml +62 -0
  169. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_delete_rule/should_delete_the_test_disabled_rule_without_an_error.yml +54 -0
  170. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_delete_rule/should_delete_the_test_enabled_rule_without_an_error.yml +54 -0
  171. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_exclude_the_fields_not_specified.yml +62 -0
  172. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_exclude_the_specified_fields.yml +62 -0
  173. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_include_the_specified_fields.yml +61 -0
  174. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/should_get_a_specific_rule.yml +62 -0
  175. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_exclude_fields_not_specified.yml +60 -0
  176. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_include_the_specified_fields.yml +61 -0
  177. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_at_least_1_disabled_rule.yml +63 -0
  178. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_at_least_1_enabled_rule.yml +62 -0
  179. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_paginated_results.yml +128 -0
  180. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/should_return_at_least_1_rule.yml +64 -0
  181. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_update_rule/should_update_the_disabled_rule_to_be_enabled.yml +64 -0
  182. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/create_test_disabled_rule.yml +65 -0
  183. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/create_test_enabled_rule.yml +65 -0
  184. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Stats/_active_users/should_have_at_least_one_active_user.yml +59 -0
  185. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Stats/_daily_stats/should_have_at_least_one_stats_entry_for_the_timeframe.yml +63 -0
  186. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings/should_get_the_tenant_settings.yml +95 -0
  187. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings_with_specific_fields/should_exclude_a_field_not_requested.yml +61 -0
  188. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings_with_specific_fields/should_include_the_field_requested.yml +61 -0
  189. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_update_tenant_settings/should_revert_the_tenant_name.yml +96 -0
  190. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_update_tenant_settings/should_update_the_tenant_settings_with_a_new_tenant_name.yml +96 -0
  191. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/_post_email_verification/should_create_an_email_verification_ticket.yml +63 -0
  192. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/_post_password_change/should_create_a_password_change_ticket.yml +63 -0
  193. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/create_test_user.yml +68 -0
  194. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/delete_test_user.yml +54 -0
  195. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_add_user_permissions/should_add_a_Permissions_for_a_User_successfully.yml +67 -0
  196. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_add_user_roles/should_add_a_Role_to_a_User_successfully.yml +62 -0
  197. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user/should_delete_the_User_successfully.yml +60 -0
  198. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user/should_delete_the_secondary_User_successfully.yml +60 -0
  199. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user_provider/should_attempt_to_delete_the_MFA_provider_for_the_User.yml +60 -0
  200. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_enrollments/should_get_Enrollments_for_a_User_successfully.yml +65 -0
  201. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_permissions/should_get_exactly_1_Permission_for_a_User_successfully.yml +65 -0
  202. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_permissions/should_get_the_correct_Permission_for_a_User_successfully.yml +65 -0
  203. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_roles/should_get_Roles_for_a_User_successfully.yml +65 -0
  204. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_invalidate_browsers/should_invalidate_MFA_browsers_for_the_User_successfully.yml +62 -0
  205. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_link_user_account/should_link_two_Users_successfully.yml +67 -0
  206. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_patch_user/should_patch_the_User_successfully.yml +68 -0
  207. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_remove_user_permissions/should_remove_a_Permission_from_a_User_successfully.yml +62 -0
  208. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_remove_user_roles/should_remove_a_Role_from_a_User_successfully.yml +62 -0
  209. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_unlink_user_account/should_unlink_two_Users_successfully.yml +65 -0
  210. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_exclude_fields_not_indicated.yml +65 -0
  211. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_exclude_the_fields_indicated.yml +65 -0
  212. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_include_the_fields_indicated.yml +65 -0
  213. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/should_retrieve_the_created_user.yml +65 -0
  214. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user_logs/should_get_Logs_for_a_User_successfully.yml +69 -0
  215. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/is_expected_to_find_a_user_with_a_v2_search_engine_query.yml +65 -0
  216. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/is_expected_to_find_a_user_with_a_v3_search_engine_query.yml +65 -0
  217. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_exclude_the_indicated_fields_when_paginated.yml +65 -0
  218. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_include_the_indicated_fields_when_paginated.yml +65 -0
  219. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_not_include_other_fields_when_paginated.yml +65 -0
  220. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_return_the_correct_number_of_results_when_paginated.yml +65 -0
  221. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/should_have_at_least_one_user.yml +65 -0
  222. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_secondary_test_user.yml +67 -0
  223. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_api.yml +67 -0
  224. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_role.yml +67 -0
  225. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_user.yml +67 -0
  226. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/delete_test_api.yml +60 -0
  227. data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/delete_test_role.yml +60 -0
  228. data/spec/integration/lib/auth0/api/api_authentication_spec.rb +96 -54
  229. data/spec/integration/lib/auth0/api/v2/api_anomaly_spec.rb +17 -0
  230. data/spec/integration/lib/auth0/api/v2/api_blacklist_spec.rb +18 -5
  231. data/spec/integration/lib/auth0/api/v2/api_client_grants_spec.rb +46 -33
  232. data/spec/integration/lib/auth0/api/v2/api_clients_spec.rb +115 -61
  233. data/spec/integration/lib/auth0/api/v2/api_connections_spec.rb +117 -103
  234. data/spec/integration/lib/auth0/api/v2/api_device_credentials_spec.rb +101 -58
  235. data/spec/integration/lib/auth0/api/v2/api_email_spec.rb +72 -77
  236. data/spec/integration/lib/auth0/api/v2/api_jobs_spec.rb +113 -60
  237. data/spec/integration/lib/auth0/api/v2/api_logs_spec.rb +46 -38
  238. data/spec/integration/lib/auth0/api/v2/api_resource_servers_spec.rb +110 -40
  239. data/spec/integration/lib/auth0/api/v2/api_roles_spec.rb +145 -0
  240. data/spec/integration/lib/auth0/api/v2/api_rules_spec.rb +119 -62
  241. data/spec/integration/lib/auth0/api/v2/api_stats_spec.rb +11 -14
  242. data/spec/integration/lib/auth0/api/v2/api_tenants_spec.rb +40 -34
  243. data/spec/integration/lib/auth0/api/v2/api_tickets_spec.rb +42 -28
  244. data/spec/integration/lib/auth0/api/v2/api_user_blocks_spec.rb +1 -1
  245. data/spec/integration/lib/auth0/api/v2/api_users_spec.rb +252 -120
  246. data/spec/integration/lib/auth0/auth0_client_spec.rb +32 -26
  247. data/spec/lib/auth0/api/v2/anomaly_spec.rb +26 -0
  248. data/spec/lib/auth0/api/v2/branding_spec.rb +70 -0
  249. data/spec/lib/auth0/api/v2/client_grants_spec.rb +34 -2
  250. data/spec/lib/auth0/api/v2/clients_spec.rb +50 -5
  251. data/spec/lib/auth0/api/v2/connections_spec.rb +49 -1
  252. data/spec/lib/auth0/api/v2/guardian_spec.rb +154 -0
  253. data/spec/lib/auth0/api/v2/jobs_spec.rb +109 -6
  254. data/spec/lib/auth0/api/v2/log_streams_spec.rb +84 -0
  255. data/spec/lib/auth0/api/v2/organizations_spec.rb +593 -0
  256. data/spec/lib/auth0/api/v2/prompts_spec.rb +88 -0
  257. data/spec/lib/auth0/api/v2/resource_servers_spec.rb +23 -0
  258. data/spec/lib/auth0/api/v2/roles_spec.rb +362 -0
  259. data/spec/lib/auth0/api/v2/rules_spec.rb +23 -1
  260. data/spec/lib/auth0/api/v2/tickets_spec.rb +95 -5
  261. data/spec/lib/auth0/api/v2/users_spec.rb +465 -61
  262. data/spec/lib/auth0/client_spec.rb +196 -18
  263. data/spec/lib/auth0/mixins/httpproxy_spec.rb +83 -4
  264. data/spec/lib/auth0/mixins/initializer_spec.rb +1 -0
  265. data/spec/lib/auth0/mixins/validation_spec.rb +498 -0
  266. data/spec/spec_helper.rb +54 -11
  267. data/spec/support/credentials.rb +6 -18
  268. data/spec/support/dummy_class.rb +7 -3
  269. data/spec/support/dummy_class_for_proxy.rb +1 -0
  270. data/spec/support/stub_response.rb +1 -1
  271. metadata +497 -53
  272. data/.travis.yml +0 -18
  273. data/build_travis.sh +0 -7
  274. data/deploy_documentation.sh +0 -29
  275. data/doc_config/templates/default/fulldoc/html/css/full_list.css +0 -79
  276. data/doc_config/templates/default/fulldoc/html/css/style.css +0 -546
  277. data/doc_config/templates/default/layout/html/breadcrumb.erb +0 -11
  278. data/doc_config/templates/default/layout/html/footer.erb +0 -115
  279. data/doc_config/templates/default/layout/html/headers.erb +0 -17
  280. data/doc_config/templates/default/layout/html/layout.erb +0 -27
  281. data/lib/auth0/api/v1/clients.rb +0 -48
  282. data/lib/auth0/api/v1/connections.rb +0 -53
  283. data/lib/auth0/api/v1/logs.rb +0 -34
  284. data/lib/auth0/api/v1/rules.rb +0 -45
  285. data/lib/auth0/api/v1/users.rb +0 -164
  286. data/lib/auth0/api/v1.rb +0 -19
  287. data/spec/lib/auth0/api/authentication_endpoints_spec.rb +0 -348
  288. data/spec/spec_helper_full.rb +0 -45
  289. data/spec/spec_helper_unit.rb +0 -3
@@ -7,6 +7,19 @@ describe Auth0::Api::V2::ResourceServers do
7
7
  @instance = dummy_instance
8
8
  end
9
9
 
10
+ context '.resource_servers' do
11
+ it { expect(@instance).to respond_to(:resource_servers) }
12
+ it { expect(@instance).to respond_to(:get_resource_servers) }
13
+ it 'is expected to call get /api/v2/resource-servers' do
14
+ expect(@instance).to receive(:get).with(
15
+ '/api/v2/resource-servers',
16
+ page: nil,
17
+ per_page: nil,
18
+ )
19
+ expect { @instance.resource_servers }.not_to raise_error
20
+ end
21
+ end
22
+
10
23
  context '.resource_server' do
11
24
  it { expect(@instance).to respond_to(:resource_server) }
12
25
  it 'is expected to call get /api/v2/resource-servers/test' do
@@ -60,4 +73,14 @@ describe Auth0::Api::V2::ResourceServers do
60
73
  expect { @instance.delete_resource_server(nil) }.to raise_error 'Must supply a valid resource server id'
61
74
  end
62
75
  end
76
+
77
+ context '.patch_resource_server' do
78
+ it { expect(@instance).to respond_to(:patch_resource_server) }
79
+ it 'is expected to send patch to /api/v2/resource_servers/1' do
80
+ expect(@instance).to receive(:patch).with('/api/v2/resource-servers/1', fields: 'fields')
81
+ expect { @instance.patch_resource_server('1', fields: 'fields') }.not_to raise_error
82
+ end
83
+ it { expect { @instance.patch_resource_server('', nil) }.to raise_error Auth0::InvalidParameter }
84
+ it { expect { @instance.patch_resource_server('some', nil) }.to raise_error Auth0::InvalidParameter }
85
+ end
63
86
  end
@@ -0,0 +1,362 @@
1
+ require 'spec_helper'
2
+ describe Auth0::Api::V2::Roles do
3
+ before :all do
4
+ dummy_instance = DummyClass.new
5
+ dummy_instance.extend(Auth0::Api::V2::Roles)
6
+ @instance = dummy_instance
7
+ end
8
+
9
+ context '.get_roles' do
10
+ it 'is expected to exist' do
11
+ expect(@instance).to respond_to(:get_roles)
12
+ end
13
+
14
+ it 'is expected to have a roles alias' do
15
+ expect(@instance).to respond_to(:roles)
16
+ end
17
+
18
+ it 'is expected to get Roles with default parameters' do
19
+ expect(@instance).to receive(:get).with(
20
+ '/api/v2/roles',
21
+ per_page: nil,
22
+ page: nil,
23
+ include_totals: nil,
24
+ name_filter: nil
25
+ )
26
+ expect { @instance.get_roles }.not_to raise_error
27
+ end
28
+
29
+ it 'is expected to get Roles with custom parameters' do
30
+ expect(@instance).to receive(:get).with(
31
+ '/api/v2/roles',
32
+ per_page: 10,
33
+ page: 3,
34
+ include_totals: true,
35
+ name_filter: 'test'
36
+ )
37
+ expect do
38
+ @instance.get_roles(per_page: 10, page: 3, include_totals: true, name_filter: 'test')
39
+ end.not_to raise_error
40
+ end
41
+ end
42
+
43
+ context '.get_role' do
44
+ it 'is expected to exist' do
45
+ expect(@instance).to respond_to(:get_role)
46
+ end
47
+
48
+ it 'is expected to have a role alias' do
49
+ expect(@instance).to respond_to(:role)
50
+ end
51
+
52
+ it 'is expected to raise an exception if an empty Role ID is passed' do
53
+ expect(@instance).not_to receive(:get)
54
+ expect do
55
+ @instance.get_role('')
56
+ end.to raise_exception Auth0::MissingParameter
57
+ end
58
+
59
+ it 'is expected to get a Role by ID' do
60
+ expect(@instance).to receive(:get).with('/api/v2/roles/ROLE_ID')
61
+ expect { @instance.get_role('ROLE_ID') }.not_to raise_error
62
+ end
63
+ end
64
+
65
+ context '.create_role' do
66
+ it 'is expected to exist' do
67
+ expect(@instance).to respond_to(:create_role)
68
+ end
69
+
70
+ it 'is expected to raise an exception if an empty Role name is passed' do
71
+ expect(@instance).not_to receive(:post)
72
+ expect do
73
+ @instance.create_role('')
74
+ end.to raise_exception Auth0::MissingParameter
75
+ end
76
+
77
+ it 'is expected to post a new Role' do
78
+ expect(@instance).to receive(:post).with(
79
+ '/api/v2/roles',
80
+ name: 'ROLE_NAME',
81
+ description: 'ROLE_DESCRIPTION'
82
+ )
83
+ expect do
84
+ @instance.create_role(
85
+ 'ROLE_NAME',
86
+ description: 'ROLE_DESCRIPTION'
87
+ )
88
+ end.not_to raise_error
89
+ end
90
+ end
91
+
92
+ context '.update_role' do
93
+ it 'is expected to exist' do
94
+ expect(@instance).to respond_to(:update_role)
95
+ end
96
+
97
+ it 'is expected to raise an exception if an empty Role ID is passed' do
98
+ expect(@instance).not_to receive(:patch)
99
+ expect do
100
+ @instance.update_role('')
101
+ end.to raise_exception Auth0::MissingParameter
102
+ end
103
+
104
+ it 'is expected to post an updated Role' do
105
+ expect(@instance).to receive(:patch).with(
106
+ '/api/v2/roles/ROLE_ID',
107
+ name: 'ROLE_NAME',
108
+ description: 'ROLE_DESCRIPTION'
109
+ )
110
+ expect do
111
+ @instance.update_role(
112
+ 'ROLE_ID',
113
+ name: 'ROLE_NAME',
114
+ description: 'ROLE_DESCRIPTION'
115
+ )
116
+ end.not_to raise_error
117
+ end
118
+ end
119
+
120
+ context '.delete_role' do
121
+ it 'is expected to exist' do
122
+ expect(@instance).to respond_to(:delete_role)
123
+ end
124
+
125
+ it 'is expected to raise an exception if an empty Role ID is passed' do
126
+ expect(@instance).not_to receive(:delete)
127
+ expect do
128
+ @instance.delete_role('')
129
+ end.to raise_exception Auth0::MissingParameter
130
+ end
131
+
132
+ it 'is expected to delete a Role' do
133
+ expect(@instance).to receive(:delete).with('/api/v2/roles/ROLE_ID')
134
+ expect { @instance.delete_role('ROLE_ID') }.not_to raise_error
135
+ end
136
+ end
137
+
138
+ context '.get_users' do
139
+ it 'is expected to exist' do
140
+ expect(@instance).to respond_to(:get_role_users)
141
+ end
142
+
143
+ it 'is expected to raise an exception if an empty Role ID is passed' do
144
+ expect(@instance).not_to receive(:get)
145
+ expect do
146
+ @instance.get_role_users('')
147
+ end.to raise_exception Auth0::MissingParameter
148
+ end
149
+
150
+ it 'is expected to get Users for a Role with default parameters' do
151
+ expect(@instance).to receive(:get).with(
152
+ '/api/v2/roles/ROLE_ID/users',
153
+ per_page: nil,
154
+ page: nil,
155
+ include_totals: nil
156
+ )
157
+ expect { @instance.get_role_users('ROLE_ID') }.not_to raise_error
158
+ end
159
+
160
+ it 'is expected to get Users for a Role with custom parameters' do
161
+ expect(@instance).to receive(:get).with(
162
+ '/api/v2/roles/ROLE_ID/users',
163
+ per_page: 30,
164
+ page: 4,
165
+ include_totals: true
166
+ )
167
+ expect do
168
+ @instance.get_role_users('ROLE_ID', per_page: 30, page: 4, include_totals: true)
169
+ end.not_to raise_error
170
+ end
171
+ end
172
+
173
+ context '.add_users' do
174
+ it 'is expected to exist' do
175
+ expect(@instance).to respond_to(:add_role_users)
176
+ end
177
+
178
+ it 'is expected to raise an exception if an empty Role ID is passed' do
179
+ expect(@instance).not_to receive(:post)
180
+ expect do
181
+ @instance.add_role_users('', [])
182
+ end.to raise_exception Auth0::MissingParameter
183
+ end
184
+
185
+ it 'is expected to raise an exception if an array is not passed for Users' do
186
+ expect(@instance).not_to receive(:post)
187
+ expect do
188
+ @instance.add_role_users('ROLE_ID', 'USERS')
189
+ end.to raise_exception Auth0::InvalidParameter
190
+ end
191
+
192
+ it 'is expected to raise an exception if no User IDs are passed' do
193
+ expect(@instance).not_to receive(:post)
194
+ expect do
195
+ @instance.add_role_users('ROLE_ID', [])
196
+ end.to raise_exception Auth0::MissingParameter
197
+ end
198
+
199
+ it 'is expected to add Users to a Role' do
200
+ expect(@instance).to receive(:post).with(
201
+ '/api/v2/roles/ROLE_ID/users',
202
+ users: %w[test|user-01 test|user-02]
203
+ )
204
+ expect do
205
+ @instance.add_role_users('ROLE_ID', %w[test|user-01 test|user-02])
206
+ end.not_to raise_error
207
+ end
208
+ end
209
+
210
+ context '.get_permissions' do
211
+ it 'is expected to exist' do
212
+ expect(@instance).to respond_to(:get_role_permissions)
213
+ end
214
+
215
+ it 'is expected to raise an exception if an empty Role ID is passed' do
216
+ expect(@instance).not_to receive(:get)
217
+ expect do
218
+ @instance.get_role_permissions('')
219
+ end.to raise_exception Auth0::MissingParameter
220
+ end
221
+
222
+ it 'is expected to get Roles with default parameters' do
223
+ expect(@instance).to receive(:get).with(
224
+ '/api/v2/roles/ROLE_ID/permissions',
225
+ per_page: nil,
226
+ page: nil,
227
+ include_totals: nil
228
+ )
229
+ expect { @instance.get_role_permissions('ROLE_ID') }.not_to raise_error
230
+ end
231
+
232
+ it 'is expected to get Roles with custom parameters' do
233
+ expect(@instance).to receive(:get).with(
234
+ '/api/v2/roles/ROLE_ID/permissions',
235
+ per_page: 15,
236
+ page: 5,
237
+ include_totals: true
238
+ )
239
+ expect do
240
+ @instance.get_role_permissions('ROLE_ID', per_page: 15, page: 5, include_totals: true)
241
+ end.not_to raise_error
242
+ end
243
+ end
244
+
245
+ context '.add_permissions' do
246
+ it 'is expected to exist' do
247
+ expect(@instance).to respond_to(:add_role_permissions)
248
+ end
249
+
250
+ it 'is expected to raise an exception if an empty Role ID is passed' do
251
+ expect(@instance).not_to receive(:post)
252
+ expect do
253
+ @instance.add_role_permissions('', [])
254
+ end.to raise_exception Auth0::MissingParameter
255
+ end
256
+
257
+ it 'is expected to raise an exception if an array is not passed for permissions' do
258
+ expect(@instance).not_to receive(:post)
259
+ expect do
260
+ @instance.add_role_permissions('ROLE_ID', 'PERMISSIONS')
261
+ end.to raise_exception Auth0::InvalidParameter
262
+ end
263
+
264
+ it 'is expected to raise an exception if an empty permissions array is passed' do
265
+ expect(@instance).not_to receive(:post)
266
+ expect do
267
+ @instance.add_role_permissions('ROLE_ID', [])
268
+ end.to raise_exception Auth0::MissingParameter
269
+ end
270
+
271
+ it 'is expected to raise an exception if the permissions array does not contain Permission structs' do
272
+ expect(@instance).not_to receive(:post)
273
+ expect do
274
+ @instance.add_role_permissions('ROLE_ID', [1, 2, 3])
275
+ end.to raise_exception Auth0::InvalidParameter
276
+ end
277
+
278
+ it 'is expected to add permissions to a Role' do
279
+ expect(@instance).to receive(:post).with(
280
+ '/api/v2/roles/ROLE_ID/permissions',
281
+ permissions: [
282
+ {
283
+ permission_name: 'permission-name-1',
284
+ resource_server_identifier: 'server-id-1'
285
+ },
286
+ {
287
+ permission_name: 'permission-name-2',
288
+ resource_server_identifier: 'server-id-2'
289
+ }
290
+ ]
291
+ )
292
+ expect do
293
+ @instance.add_role_permissions(
294
+ 'ROLE_ID',
295
+ [
296
+ Auth0::Permission.new('permission-name-1', 'server-id-1'),
297
+ Auth0::Permission.new('permission-name-2', 'server-id-2')
298
+ ]
299
+ )
300
+ end.not_to raise_error
301
+ end
302
+ end
303
+
304
+ context '.remove_permissions' do
305
+ it 'is expected to exist' do
306
+ expect(@instance).to respond_to(:remove_role_permissions)
307
+ end
308
+
309
+ it 'is expected to raise an exception if an empty Role ID is passed' do
310
+ expect(@instance).not_to receive(:delete_with_body)
311
+ expect do
312
+ @instance.remove_role_permissions('', [])
313
+ end.to raise_exception Auth0::MissingParameter
314
+ end
315
+
316
+ it 'is expected to raise an exception if an array is not passed for permissions' do
317
+ expect(@instance).not_to receive(:post)
318
+ expect do
319
+ @instance.remove_role_permissions('ROLE_ID', 'PERMISSIONS')
320
+ end.to raise_exception Auth0::InvalidParameter
321
+ end
322
+
323
+ it 'is expected to raise an exception if an empty permissions array is passed' do
324
+ expect(@instance).not_to receive(:delete_with_body)
325
+ expect do
326
+ @instance.remove_role_permissions('ROLE_ID', [])
327
+ end.to raise_exception Auth0::MissingParameter
328
+ end
329
+
330
+ it 'is expected to raise an exception if the permissions array does not contain Permission structs' do
331
+ expect(@instance).not_to receive(:post)
332
+ expect do
333
+ @instance.remove_role_permissions('ROLE_ID', [1, 2, 3])
334
+ end.to raise_exception Auth0::InvalidParameter
335
+ end
336
+
337
+ it 'is expected to remove permissions from a Role' do
338
+ expect(@instance).to receive(:delete_with_body).with(
339
+ '/api/v2/roles/ROLE_ID/permissions',
340
+ permissions: [
341
+ {
342
+ permission_name: 'permission-name-3',
343
+ resource_server_identifier: 'server-id-3'
344
+ },
345
+ {
346
+ permission_name: 'permission-name-4',
347
+ resource_server_identifier: 'server-id-4'
348
+ }
349
+ ]
350
+ )
351
+ expect do
352
+ @instance.remove_role_permissions(
353
+ 'ROLE_ID',
354
+ [
355
+ Auth0::Permission.new('permission-name-3', 'server-id-3'),
356
+ Auth0::Permission.new('permission-name-4', 'server-id-4')
357
+ ]
358
+ )
359
+ end.not_to raise_error
360
+ end
361
+ end
362
+ end
@@ -9,12 +9,34 @@ describe Auth0::Api::V2::Rules do
9
9
 
10
10
  context '.rules' do
11
11
  it { expect(@instance).to respond_to(:rules) }
12
+
12
13
  it 'is expected to call get /api/v2/rules' do
13
14
  expect(@instance).to receive(:get).with(
14
- '/api/v2/rules', enabled: nil, fields: nil, include_fields: nil, stage: nil
15
+ '/api/v2/rules',
16
+ enabled: nil,
17
+ fields: nil,
18
+ include_fields: nil,
19
+ stage: nil,
20
+ page: nil,
21
+ per_page: nil
15
22
  )
16
23
  expect { @instance.rules }.not_to raise_error
17
24
  end
25
+
26
+ it 'is expected to call get /api/v2/rules with pagination' do
27
+ expect(@instance).to receive(:get).with(
28
+ '/api/v2/rules',
29
+ enabled: nil,
30
+ fields: nil,
31
+ include_fields: nil,
32
+ stage: nil,
33
+ page: 1,
34
+ per_page: 2
35
+ )
36
+ expect {
37
+ @instance.rules(page: 1, per_page: 2)
38
+ }.not_to raise_error
39
+ end
18
40
  end
19
41
 
20
42
  context '.rule' do
@@ -7,22 +7,112 @@ describe Auth0::Api::V2::Tickets do
7
7
  context '.post_email_verification' do
8
8
  it { expect(@instance).to respond_to(:post_email_verification) }
9
9
  it 'expect client to send post to /api/v2/tickets/email-verification with body' do
10
- expect(@instance).to receive(:post).with('/api/v2/tickets/email-verification', user_id: 'user_id', result_url: nil)
10
+ expect(@instance).to receive(:post).with('/api/v2/tickets/email-verification', user_id: 'user_id',
11
+ result_url: nil, ttl_sec: nil)
11
12
  expect { @instance.post_email_verification('user_id') }.not_to raise_error
12
13
  end
14
+ it 'expect client to accept integer ttl_sec' do
15
+ expect(@instance).to receive(:post).with('/api/v2/tickets/email-verification', user_id: 'user_id',
16
+ result_url: nil, ttl_sec: 300)
17
+ expect { @instance.post_email_verification('user_id', ttl_sec: 300) }.not_to raise_error
18
+ end
19
+ it 'expect client to return nil when calling with a non-integer ttl_sec' do
20
+ expect(@instance).to receive(:post).with('/api/v2/tickets/email-verification', user_id: 'user_id',
21
+ result_url: nil, ttl_sec: nil)
22
+ expect { @instance.post_email_verification('user_id', ttl_sec: "noninteger") }.not_to raise_error
23
+ end
24
+ it 'expect client to accept hash identity' do
25
+ expect(@instance).to receive(:post).with('/api/v2/tickets/email-verification', user_id: 'user_id',
26
+ result_url: nil,
27
+ ttl_sec: nil,
28
+ identity: {
29
+ provider: "auth0",
30
+ user_id: "user_id"
31
+ })
32
+ expect {
33
+ @instance.post_email_verification('user_id', identity: { provider: "auth0", user_id: "user_id"})
34
+ }.not_to raise_error
35
+ end
36
+ it 'expect client to return nil when calling with a non-hash identity' do
37
+ expect { @instance.post_email_verification('user_id', identity: "nonhash") }.to raise_error(
38
+ 'Identity must be a hash to post an email verification'
39
+ )
40
+ end
13
41
  it 'expect client to rasie error when calling with empty body' do
14
42
  expect { @instance.post_email_verification(nil) }.to raise_error(
15
43
  'Must supply a valid user id to post an email verification'
16
44
  )
17
45
  end
18
46
  end
47
+
19
48
  context '.post_password_change' do
20
49
  it { expect(@instance).to respond_to(:post_password_change) }
21
50
  it 'expect client to send post to /api/v2/tickets/password-change with body' do
22
- expect(@instance).to receive(:post).with('/api/v2/tickets/password-change', user_id: nil, result_url: nil,
23
- new_password: nil,
24
- connection_id: nil, email: nil)
25
- expect { @instance.post_password_change }.not_to raise_error
51
+ expect(@instance).to receive(:post).with('/api/v2/tickets/password-change',
52
+ result_url: nil,
53
+ user_id: nil,
54
+ connection_id: nil,
55
+ email: nil,
56
+ ttl_sec: nil,
57
+ mark_email_as_verified: nil,
58
+ includeEmailInRedirect: nil,
59
+ new_password: nil)
60
+ expect {@instance.post_password_change}.not_to raise_error
61
+ end
62
+
63
+ it 'expect client to accept organization_id' do
64
+ expect(@instance).to receive(:post).with('/api/v2/tickets/password-change',
65
+ result_url: nil,
66
+ user_id: nil,
67
+ connection_id: nil,
68
+ email: nil,
69
+ ttl_sec: nil,
70
+ mark_email_as_verified: nil,
71
+ includeEmailInRedirect: nil,
72
+ new_password: nil,
73
+ client_id: '123',
74
+ organization_id: '999'
75
+ )
76
+ expect {
77
+ @instance.post_password_change(
78
+ result_url: nil,
79
+ user_id: nil,
80
+ connection_id: nil,
81
+ email: nil,
82
+ ttl_sec: nil,
83
+ mark_email_as_verified: nil,
84
+ includeEmailInRedirect: nil,
85
+ new_password: nil,
86
+ client_id: '123',
87
+ organization_id: '999')
88
+ }.not_to raise_error
89
+ end
90
+
91
+ it 'expect client to accept client_id' do
92
+ expect(@instance).to receive(:post).with('/api/v2/tickets/password-change',
93
+ result_url: nil,
94
+ user_id: nil,
95
+ connection_id: nil,
96
+ email: nil,
97
+ ttl_sec: nil,
98
+ mark_email_as_verified: nil,
99
+ includeEmailInRedirect: nil,
100
+ new_password: nil,
101
+ client_id: '123'
102
+ )
103
+ expect {
104
+ @instance.post_password_change(
105
+ result_url: nil,
106
+ user_id: nil,
107
+ connection_id: nil,
108
+ email: nil,
109
+ ttl_sec: nil,
110
+ mark_email_as_verified: nil,
111
+ includeEmailInRedirect: nil,
112
+ new_password: nil,
113
+ client_id: '123'
114
+ )
115
+ }.not_to raise_error
26
116
  end
27
117
  end
28
118
  end