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
@@ -1,60 +1,130 @@
1
1
  require 'spec_helper'
2
2
  describe Auth0::Api::V2::ResourceServers do
3
- attr_reader :client, :resource_server
3
+ attr_reader :client, :test_server
4
4
 
5
5
  before(:all) do
6
6
  @client = Auth0Client.new(v2_creds)
7
- identifier = SecureRandom.uuid
8
- sleep 1
9
- @resource_server = client.create_resource_server(identifier)
7
+
8
+ VCR.use_cassette('Auth0_Api_V2_ResourceServers/create_test_server') do
9
+ @test_server = client.create_resource_server(
10
+ 'https://localhost.test/api/v1/',
11
+ 'name' => "TestServer-#{entity_suffix}",
12
+ 'signing_alg' => 'RS256',
13
+ 'signing_secret' => 'jPd1d0TWbg7pN9iPcXdtYtEIIGAk5zhmCi',
14
+ 'token_lifetime' => 123456
15
+ )
16
+ end
10
17
  end
11
18
 
12
19
  after(:all) do
13
- sleep 1
14
- client.delete_resource_server(resource_server['id'])
20
+ VCR.use_cassette('Auth0_Api_V2_ResourceServers/delete_test_server') do
21
+ client.delete_resource_server(test_server['id'])
22
+ end
23
+ end
24
+
25
+ describe '.resource_servers', vcr: true do
26
+ let(:resource_servers) do
27
+ client.resource_servers
28
+ end
29
+
30
+ it 'should return at least 1 result' do
31
+ expect(resource_servers.size).to be > 0
32
+ end
33
+
34
+ it 'should get the test server' do
35
+ expect(resource_servers).to include(test_server)
36
+ end
37
+
38
+ it 'should return the first page of one result' do
39
+ results = client.resource_servers(
40
+ page: 0,
41
+ per_page: 1
42
+ )
43
+ expect(results.first).to equal(results.last)
44
+ end
45
+ end
46
+
47
+ describe '.create_resource_server', vcr: true do
48
+ it 'should raise an error if the identifier is empty' do
49
+ expect do
50
+ client.create_resource_server('')
51
+ end.to raise_error Auth0::InvalidParameter
52
+ end
53
+
54
+ it 'should raise an error if the name includes an invalid char' do
55
+ expect do
56
+ client.create_resource_server(
57
+ 'https://localhost.test/api/v2/',
58
+ name: '<ServerName'
59
+ )
60
+ end.to raise_error Auth0::InvalidParameter
61
+ end
62
+
63
+ it 'should raise an error if the name includes an invalid char' do
64
+ expect do
65
+ client.create_resource_server(
66
+ 'https://localhost.test/api/v2/',
67
+ name: 'ServerName>'
68
+ )
69
+ end.to raise_error Auth0::InvalidParameter
70
+ end
71
+
72
+ it 'should create the test server' do
73
+ expect(test_server).to(
74
+ include(
75
+ 'name' => test_server['name'],
76
+ 'identifier' => test_server['identifier'],
77
+ 'signing_alg' => test_server['signing_alg'],
78
+ 'signing_secret' => test_server['signing_secret'],
79
+ 'token_lifetime' => test_server['token_lifetime']
80
+ )
81
+ )
82
+ end
15
83
  end
16
84
 
17
- describe '.resource_server' do
18
- it do
19
- sleep 1
20
- expect(client.resource_server(resource_server['id'])).to(
21
- include('identifier' => resource_server['identifier'], 'id' => resource_server['id'],
22
- 'signing_alg' => resource_server['signing_alg'],
23
- 'token_lifetime' => resource_server['token_lifetime'])
85
+ describe '.resource_server', vcr: true do
86
+ it 'should raise an error if the id is empty' do
87
+ expect do
88
+ client.resource_server('')
89
+ end.to raise_error Auth0::InvalidParameter
90
+ end
91
+
92
+ it 'should get the test server' do
93
+ expect(
94
+ client.resource_server(test_server['id'])
95
+ ).to(
96
+ include('identifier' => test_server['identifier'])
24
97
  )
25
98
  end
26
99
  end
27
100
 
28
- describe '.create_resource_server' do
29
- let(:name) { Faker::Lorem.word }
30
- let(:identifier) { SecureRandom.uuid }
31
- let(:signing_alg) { 'HS256' }
32
- let(:signing_secret) { Faker::Lorem.characters(16) }
33
- let(:token_lifetime) { rand(1000..3000) }
34
- let!(:resource_server) do
35
- sleep 1
36
- client.create_resource_server(identifier, 'name' => name, 'signing_alg' => signing_alg,
37
- 'signing_secret' => signing_secret,
38
- 'token_lifetime' => token_lifetime)
39
- end
40
- it do
41
- sleep 1
42
- expect(resource_server).to include('name' => name, 'identifier' => identifier, 'signing_alg' => signing_alg,
43
- 'signing_secret' => signing_secret,
44
- 'token_lifetime' => token_lifetime)
45
- sleep 1
46
- expect { client.delete_resource_server(resource_server['id']) }.to_not raise_error
47
- end
48
- it do
49
- sleep 1
50
- expect { client.delete_resource_server(resource_server['id']) }.to_not raise_error
101
+ describe '.patch_resource_server', vcr: true do
102
+ it 'should update the resource server with the correct attributes' do
103
+ expect(
104
+ client.patch_resource_server(
105
+ test_server['id'],
106
+ token_lifetime: 654321,
107
+ )
108
+ ).to(
109
+ include(
110
+ 'token_lifetime' => 654321,
111
+ )
112
+ )
51
113
  end
52
114
  end
53
115
 
54
- describe '.delete_resource_server' do
55
- it do
56
- sleep 1
57
- expect { client.delete_resource_server(resource_server['id']) }.to_not raise_error
116
+ describe '.delete_resource_server', vcr: true do
117
+ it 'should raise an error if the id is empty' do
118
+ expect do
119
+ client.delete_resource_server('')
120
+ end.to raise_error Auth0::InvalidParameter
121
+ end
122
+
123
+ it 'should delete the test server without an error' do
124
+ expect do
125
+ client.delete_resource_server(test_server['id'])
126
+ end.to_not raise_error
58
127
  end
59
128
  end
129
+
60
130
  end
@@ -0,0 +1,145 @@
1
+ require 'spec_helper'
2
+
3
+ describe Auth0::Api::V2::Roles do
4
+ attr_reader :client, :test_user, :test_role_name, :test_permission, :test_api, :test_role
5
+
6
+ before(:all) do
7
+ @client ||= Auth0::Client.new(v2_creds)
8
+
9
+ @test_user_name = "#{entity_suffix}-username-for-roles"
10
+ @test_user_email = "#{entity_suffix}-#{@test_user_name}@auth0.com"
11
+
12
+ @test_api_name = "#{entity_suffix}-test-api-for-roles"
13
+
14
+ @test_role_name = "#{entity_suffix}-test-role"
15
+
16
+ @test_permission_name = "#{entity_suffix}-test-permission"
17
+ @test_permission = ::Auth0::Permission.new(@test_permission_name , @test_api_name)
18
+
19
+ VCR.use_cassette('Auth0_Api_V2_Roles/create_test_user') do
20
+ @test_user ||= client.create_user(
21
+ @test_user_name,
22
+ email: @test_user_email,
23
+ password: Faker::Internet.password,
24
+ connection: Auth0::Api::AuthenticationEndpoints::UP_AUTH
25
+ )
26
+ end
27
+
28
+ VCR.use_cassette('Auth0_Api_V2_Roles/create_test_api') do
29
+ @test_api ||= client.create_resource_server(
30
+ @test_api_name,
31
+ name: @test_api_name,
32
+ scopes: [{ value: @test_permission_name }]
33
+ )
34
+ end
35
+
36
+ VCR.use_cassette('Auth0_Api_V2_Roles/create_test_role') do
37
+ @test_role ||= client.create_role(
38
+ @test_role_name,
39
+ description: 'Test role description'
40
+ )
41
+ end
42
+ end
43
+
44
+ after(:all) do
45
+ VCR.use_cassette('Auth0_Api_V2_Roles/delete_test_user') do
46
+ client.delete_user test_user['user_id']
47
+ end
48
+
49
+ VCR.use_cassette('Auth0_Api_V2_Roles/delete_test_api') do
50
+ client.delete_resource_server test_api['id']
51
+ end
52
+ end
53
+
54
+ describe '.create_role' do
55
+ it 'should create the Role successfully' do
56
+ expect(test_role).to include('id', 'name', 'description')
57
+ expect(test_role).to include(
58
+ 'name' => @test_role_name,
59
+ 'description' => 'Test role description'
60
+ )
61
+ end
62
+ end
63
+
64
+ describe '.get_role', vcr: true do
65
+ let(:test_get_role) { client.get_role test_role['id'] }
66
+
67
+ it 'should get the Role successfully' do
68
+ expect(test_get_role).to include('id', 'name', 'description')
69
+ expect(test_get_role).to include(
70
+ 'id' => test_role['id'],
71
+ 'name' => @test_role_name,
72
+ 'description' => 'Test role description'
73
+ )
74
+ end
75
+ end
76
+
77
+ describe '.get_roles', vcr: true do
78
+ it 'should get the Role successfully' do
79
+ expect(client.get_roles.count).to be >= 1
80
+ end
81
+ end
82
+
83
+ describe '.update_role', vcr: true do
84
+ it 'should update the Role successfully' do
85
+ expect(
86
+ client.update_role(
87
+ test_role['id'],
88
+ name: 'New name',
89
+ description: 'New description'
90
+ )
91
+ ).to include(
92
+ 'name' => 'New name',
93
+ 'description' => 'New description'
94
+ )
95
+ end
96
+ end
97
+
98
+ describe '.add_role_users', vcr: true do
99
+ it 'should add a User to the Role successfully' do
100
+ expect { client.add_role_users test_role['id'], [test_user['user_id']] }.to_not raise_error
101
+ end
102
+ end
103
+
104
+ describe '.get_role_users', vcr: true do
105
+ let(:test_get_role_users) { client.get_role_users test_role['id'] }
106
+
107
+ it 'should get exactly 1 User' do
108
+ expect(test_get_role_users.count).to equal 1
109
+ end
110
+
111
+ it 'should get the added User from the Role successfully' do
112
+ expect(test_get_role_users[0]['user_id']).to eq(test_user['user_id'])
113
+ end
114
+ end
115
+
116
+ describe '.add_role_permissions', vcr: true do
117
+ it 'should add a Permission to the Role successfully' do
118
+ expect { client.add_role_permissions test_role['id'], [test_permission] }.to_not raise_error
119
+ end
120
+ end
121
+
122
+ describe '.get_role_permissions', vcr: true do
123
+ let(:test_get_role_permissions) { client.get_role_permissions test_role['id'] }
124
+
125
+ it 'should get exactly 1 Permission' do
126
+ expect(test_get_role_permissions.count).to equal 1
127
+ end
128
+
129
+ it 'should get the added Permission from the Role successfully' do
130
+ expect(test_get_role_permissions[0]['permission_name']).to eq("#{entity_suffix}-test-permission")
131
+ end
132
+ end
133
+
134
+ describe '.remove_role_permissions', vcr: true do
135
+ it 'should remove a Permission from the Role successfully' do
136
+ expect { client.remove_role_permissions test_role['id'], [test_permission] }.to_not raise_error
137
+ end
138
+ end
139
+
140
+ describe '.delete_role', vcr: true do
141
+ it 'should delete the Role successfully' do
142
+ expect { client.delete_role test_role['id'] }.to_not raise_error
143
+ end
144
+ end
145
+ end
@@ -1,120 +1,177 @@
1
1
  require 'spec_helper'
2
2
  describe Auth0::Api::V2::Rules do
3
- attr_reader :client, :enabled_rule, :disabled_rule
3
+ attr_reader :client, :test_script, :enabled_rule, :disabled_rule
4
4
 
5
5
  before(:all) do
6
6
  @client = Auth0Client.new(v2_creds)
7
- suffix = "#{entity_suffix}#{Faker::Lorem.word}"
8
- script = 'function (user, context, callback) { callback(null, user, context);}'
9
- stage = 'login_success'
10
- sleep 1
11
- @enabled_rule = client.create_rule("Enabled Rule #{suffix}", script, nil, true, stage)
12
- sleep 1
13
- @disabled_rule = client.create_rule("Disabled Rule #{suffix}", script, nil, false, stage)
7
+ @test_script = 'function (user, context, cb) { cb(null, user, context);}'
8
+
9
+ VCR.use_cassette('Auth0_Api_V2_Rules/create_test_enabled_rule') do
10
+ @enabled_rule = client.create_rule(
11
+ "#{entity_suffix} - ENABLED",
12
+ test_script
13
+ )
14
+ end
15
+
16
+ VCR.use_cassette('Auth0_Api_V2_Rules/create_test_disabled_rule') do
17
+ @disabled_rule = client.create_rule(
18
+ "#{entity_suffix} - DISABLED",
19
+ test_script,
20
+ nil,
21
+ false
22
+ )
23
+ end
14
24
  end
15
25
 
16
26
  after(:all) do
17
- rules = client.rules
18
- rules.each do |rule|
19
- sleep 1
20
- client.delete_rule(rule['id'])
27
+ VCR.use_cassette('Auth0_Api_V2_Logs/delete_test_enabled_rule') do
28
+ client.delete_rule(disabled_rule['id'])
29
+ end
30
+ VCR.use_cassette('Auth0_Api_V2_Logs/delete_test_disabled_rule') do
31
+ client.delete_rule(disabled_rule['id'])
21
32
  end
22
33
  end
23
34
 
24
- describe '.rules' do
35
+ describe '.create_rule', vcr: true do
36
+ it 'should create the test enabled rule with the correct attributes' do
37
+ expect(enabled_rule).to(
38
+ include(
39
+ 'name' => "#{entity_suffix} - ENABLED",
40
+ 'stage' => 'login_success',
41
+ 'script' => test_script,
42
+ 'enabled' => true
43
+ )
44
+ )
45
+ end
46
+
47
+ it 'should create the test disabled rule with the correct attributes' do
48
+ expect(disabled_rule).to(
49
+ include(
50
+ 'name' => "#{entity_suffix} - DISABLED",
51
+ 'stage' => 'login_success',
52
+ 'script' => test_script,
53
+ 'enabled' => false
54
+ )
55
+ )
56
+ end
57
+
58
+ it 'should raise an error if the name is empty' do
59
+ expect do
60
+ client.create_rule('', 'SCRIPT')
61
+ end.to raise_error(Auth0::InvalidParameter)
62
+ end
63
+
64
+ it 'should raise an error if the name is empty' do
65
+ expect do
66
+ client.create_rule('NAME', '')
67
+ end.to raise_error(Auth0::InvalidParameter)
68
+ end
69
+ end
70
+
71
+ describe '.rules', vcr: true do
25
72
  let(:rules) do
26
- sleep 1
27
73
  client.rules
28
74
  end
29
75
 
30
- it do
31
- sleep 1
76
+ it 'should return at least 1 rule' do
32
77
  expect(rules.size).to be > 0
33
78
  end
34
79
 
35
80
  context '#filters' do
36
- it do
37
- sleep 1
81
+ it 'should return at least 1 enabled rule' do
38
82
  expect(client.rules(enabled: true).size).to be >= 1
39
83
  end
40
84
 
41
- it do
42
- sleep 1
85
+ it 'should return at least 1 disabled rule' do
43
86
  expect(client.rules(enabled: false).size).to be >= 1
44
87
  end
45
88
 
46
- it do
47
- sleep 1
48
- expect(client.rules(enabled: true, fields: [:script, :order].join(',')).first).to(include('script', 'order'))
89
+ it 'should include the specified fields' do
90
+ expect(
91
+ client.rules(
92
+ fields: [:script, :order].join(',')
93
+ ).first
94
+ ).to(include('script', 'order'))
95
+ end
96
+
97
+ it 'should exclude fields not specified' do
98
+ expect(
99
+ client.rules(
100
+ fields: [:script].join(',')
101
+ ).first
102
+ ).to_not(include('order', 'name'))
49
103
  end
50
- it do
51
- sleep 1
52
- expect(client.rules(enabled: true, fields: [:script].join(',')).first).to_not(include('order', 'name'))
104
+
105
+ it 'should return paginated results' do
106
+ rule_1 = client.rules(fields: :name, page: 0, per_page: 2)
107
+ rule_2 = client.rules(fields: :name, page: 1, per_page: 1)
108
+ expect(rule_1.last).to eq(rule_2.first)
53
109
  end
54
110
  end
55
111
  end
56
112
 
57
- describe '.rule' do
58
- it do
59
- sleep 1
113
+ describe '.rule', vcr: true do
114
+ it 'should get a specific rule' do
60
115
  expect(client.rule(enabled_rule['id'])).to(
61
- include('stage' => enabled_rule['stage'], 'order' => enabled_rule['order'], 'script' => enabled_rule['script'])
116
+ include(
117
+ 'name' => enabled_rule['name'],
118
+ 'script' => enabled_rule['script']
119
+ )
62
120
  )
63
121
  end
64
122
 
65
123
  context '#filters' do
66
124
  let(:rule_include) do
67
- sleep 1
68
- client.rule(enabled_rule['id'], fields: [:stage, :order, :script].join(','))
125
+ client.rule(
126
+ enabled_rule['id'],
127
+ fields: [:stage, :order, :script].join(',')
128
+ )
69
129
  end
130
+
70
131
  let(:rule_not_include) do
71
- sleep 1
72
- client.rule(enabled_rule['id'], fields: :stage, include_fields: false)
132
+ client.rule(
133
+ enabled_rule['id'],
134
+ fields: :stage,
135
+ include_fields: false
136
+ )
73
137
  end
74
138
 
75
- it do
76
- sleep 1
139
+ it 'should include the specified fields' do
77
140
  expect(rule_include).to(include('stage', 'order', 'script'))
78
141
  end
79
142
 
80
- it do
81
- sleep 1
143
+ it 'should exclude the specified fields' do
82
144
  expect(rule_not_include).to(include('order', 'script'))
145
+ end
146
+
147
+ it 'should exclude the fields not specified' do
83
148
  expect(rule_not_include).to_not(include('stage'))
84
149
  end
85
150
  end
86
151
  end
87
152
 
88
- describe '.create_rule' do
89
- let(:name) { "#{Faker::Lorem.word}#{entity_suffix}" }
90
- let(:stage) { 'login_success' }
91
- let(:script) { 'function(test)' }
92
- let(:enabled) { false }
93
- let!(:rule) do
94
- sleep 1
95
- client.create_rule(name, script, nil, enabled, stage)
96
- end
97
- it do
98
- sleep 1
99
- expect(rule).to include('name' => name, 'stage' => stage, 'script' => script)
153
+ describe '.update_rule', vcr: true do
154
+ it 'should update the disabled rule to be enabled' do
155
+ expect(
156
+ client.update_rule(
157
+ disabled_rule['id'],
158
+ enabled: true
159
+ )
160
+ ).to(include('enabled' => true))
100
161
  end
101
162
  end
102
163
 
103
- describe '.delete_rule' do
104
- it do
105
- sleep 1
106
- expect { client.delete_rule(enabled_rule['id']) }.to_not raise_error
107
- end
108
- it do
109
- sleep 1
164
+ describe '.delete_rule', vcr: true do
165
+ it 'should raise an error if the rule ID is not passed' do
110
166
  expect { client.delete_rule '' }.to raise_error(Auth0::InvalidParameter)
111
167
  end
112
- end
113
168
 
114
- describe '.update_rule' do
115
- it do
116
- sleep 1
117
- expect(client.update_rule(disabled_rule['id'], enabled: true)).to(include('enabled' => true))
169
+ it 'should delete the test enabled rule without an error' do
170
+ expect { client.delete_rule(enabled_rule['id']) }.to_not raise_error
171
+ end
172
+
173
+ it 'should delete the test disabled rule without an error' do
174
+ expect { client.delete_rule(disabled_rule['id']) }.to_not raise_error
118
175
  end
119
176
  end
120
177
  end
@@ -2,24 +2,21 @@ require 'spec_helper'
2
2
  describe Auth0::Api::V2::Stats do
3
3
  let(:client) { Auth0Client.new(v2_creds) }
4
4
 
5
- describe '.active_users' do
6
- it do
7
- sleep 1
5
+ describe '.active_users', vcr: true do
6
+ it 'should have at least one active user' do
8
7
  expect(Integer(client.active_users)).to be >= 0
9
8
  end
10
9
  end
11
10
 
12
11
  # rubocop:disable Date
13
- describe '.daily_stats' do
14
- let(:from) { Date.today.prev_day.strftime('%Y%m%d') }
15
- let(:to) { Date.today.strftime('%Y%m%d') }
16
- let(:daily_stats) do
17
- sleep 1
18
- client.daily_stats(from, to)
19
- end
20
- it do
21
- sleep 1
22
- expect(daily_stats.size).to be > 0
12
+ describe '.daily_stats', vcr: true do
13
+ it 'should have at least one stats entry for the timeframe' do
14
+ expect(
15
+ client.daily_stats(
16
+ Date.new(2017, 1, 1).strftime('%Y%m%d'),
17
+ Date.new(2018, 1, 1).strftime('%Y%m%d')
18
+ ).size
19
+ ).to be > 0
23
20
  end
24
21
  end
25
- end
22
+ end
@@ -1,53 +1,59 @@
1
1
  require 'spec_helper'
2
2
  describe Auth0::Api::V2::Tenants do
3
- attr_reader :client, :body
3
+ attr_reader :client
4
4
 
5
5
  before(:all) do
6
6
  @client = Auth0Client.new(v2_creds)
7
- @body = {
8
- 'error_page' => {
9
- 'html' => '',
10
- 'show_log_link' => false,
11
- 'url' => 'https://mycompany.org/error'
12
- },
13
- 'friendly_name' => 'My Company',
14
- 'picture_url' => 'https://mycompany.org/logo.png',
15
- 'support_email' => 'support@mycompany.org',
16
- 'support_url' => 'https://mycompany.org/support'
17
- }
18
-
19
- sleep 1
20
- client.update_tenant_settings(body)
21
7
  end
22
8
 
23
- describe '.get_tenant_settings' do
24
- it do
25
- sleep 1
26
- expect(client.get_tenant_settings).to include(body)
9
+ let(:default_tenant_name) { 'Auth0' }
10
+
11
+ describe '.get_tenant_settings', vcr: true do
12
+ it 'should get the tenant settings' do
13
+ expect(
14
+ client.get_tenant_settings
15
+ ).to include(
16
+ 'friendly_name' => default_tenant_name,
17
+ 'support_email' => 'support@auth0.org'
18
+ )
27
19
  end
20
+ end
28
21
 
22
+ describe '.get_tenant_settings with specific fields', vcr: true do
29
23
  let(:tenant_setting_fields) do
30
- sleep 1
31
- client.get_tenant_settings(fields: 'picture_url')
24
+ client.get_tenant_settings(fields: 'support_email')
32
25
  end
33
- it do
34
- sleep 1
35
- expect(tenant_setting_fields).to_not include('friendly_name' => 'My Company')
26
+
27
+ it 'should include the field requested' do
28
+ expect(
29
+ tenant_setting_fields
30
+ ).to include('support_email')
36
31
  end
37
- it do
38
- sleep 1
39
- expect(tenant_setting_fields).to include('picture_url' => 'https://mycompany.org/logo.png')
32
+
33
+ it 'should exclude a field not requested' do
34
+ expect(
35
+ tenant_setting_fields
36
+ ).to_not include('friendly_name')
40
37
  end
41
38
  end
42
39
 
43
- describe '.update_tenant_settings' do
44
- let(:tenant_name) { Faker::Company.name }
45
- let(:body_tenant) do
46
- { 'friendly_name' => tenant_name }
40
+ describe '.update_tenant_settings', vcr: true do
41
+ let(:changed_tenant_name) { "#{default_tenant_name}-CHANGED" }
42
+
43
+ it 'should update the tenant settings with a new tenant name' do
44
+ expect(
45
+ client.update_tenant_settings(
46
+ { friendly_name: changed_tenant_name }
47
+ )['friendly_name']
48
+ ).to include(changed_tenant_name)
47
49
  end
48
- it do
49
- sleep 1
50
- expect(client.update_tenant_settings(body_tenant)['friendly_name']).to include(tenant_name)
50
+
51
+ it 'should revert the tenant name' do
52
+ expect(
53
+ client.update_tenant_settings(
54
+ { friendly_name: default_tenant_name }
55
+ )['friendly_name']
56
+ ).to include(default_tenant_name)
51
57
  end
52
58
  end
53
59
  end