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,121 +1,116 @@
1
1
  require 'spec_helper'
2
2
  describe Auth0::Api::V2::Emails do
3
+ attr_reader :client
4
+
3
5
  before(:all) do
4
- client = Auth0Client.new(v2_creds)
6
+ @client = Auth0Client.new(v2_creds)
7
+
5
8
  begin
6
- sleep 1
7
- client.delete_provider
8
- rescue
9
+ VCR.use_cassette(
10
+ 'Auth0_Api_V2_Emails/delete_existing_provider'
11
+ ) do
12
+ client.delete_provider
13
+ end
14
+ rescue Auth0::NotFound
9
15
  puts 'no email provider to delete'
10
16
  end
11
17
  end
12
18
 
13
- let(:client) { Auth0Client.new(v2_creds) }
14
19
  let(:name) { 'mandrill' }
15
20
  let(:enabled) { true }
16
- let(:credentials) { { 'api_key' => 'api_key' } }
17
- let(:settings) { { 'first_setting' => 'first_setting_set', 'second_setting' => 'second_setting_set' } }
21
+ let(:credentials) { {api_key: 'api_key'} }
22
+
23
+ let(:settings) do
24
+ {
25
+ first_setting: 'first_setting_set',
26
+ second_setting: 'second_setting_set'
27
+ }
28
+ end
29
+
18
30
  let(:body) do
19
- { 'name' => name,
20
- 'enabled' => enabled,
21
- 'credentials' => credentials,
22
- 'settings' => settings }
31
+ {
32
+ name: name,
33
+ enabled: enabled,
34
+ credentials: credentials,
35
+ settings: settings
36
+ }
23
37
  end
24
38
 
25
- describe '.configure_provider' do
26
- let!(:email_provider) do
27
- sleep 1
39
+ describe '.configure_provider', vcr: true do
40
+ it 'should configure a new email provider' do
28
41
  begin
29
- client.configure_provider(body)
30
- rescue
31
- puts 'email provider is already configured'
32
- end
33
- end
34
- it do
35
- if email_provider
36
- sleep 1
37
- expect(email_provider).to include(
38
- 'name' => name, 'enabled' => enabled, 'credentials' => credentials, 'settings' => settings
39
- )
42
+ expect(
43
+ JSON.parse(JSON[client.configure_provider(body)], symbolize_names: true)
44
+ ).to include(body)
45
+ rescue Auth0::Unsupported
46
+ puts 'Email provider is already configured'
40
47
  end
41
48
  end
42
49
  end
43
50
 
44
- describe '.get_provider' do
45
- let(:provider) do
46
- sleep 1
51
+ describe '.get_provider', vcr: true do
52
+ it 'should get the existing email provider' do
47
53
  begin
48
- client.get_provider
49
- rescue
50
- 'no email provider'
51
- end
52
- end
53
-
54
- it do
55
- if provider
56
- sleep 1
57
- expect(provider.size).to be > 0
54
+ expect(client.get_provider.size).to be > 0
55
+ rescue Auth0::NotFound
56
+ 'No email provider configured'
58
57
  end
59
58
  end
60
59
 
61
60
  context '#filters' do
62
- it do
61
+ it 'should get the existing email provider with specific fields' do
63
62
  begin
64
- sleep 1
65
63
  expect(
66
- client.get_provider(fields: [:name, :enabled, :credentials].join(','), include_fields: true)
67
- ).to(
68
- include('name', 'enabled', 'credentials')
69
- )
70
- rescue
71
- 'no email provider'
64
+ client.get_provider(
65
+ fields: [:name, :enabled, :credentials].join(','),
66
+ include_fields: true
67
+ )
68
+ ).to include('name', 'enabled', 'credentials')
69
+ rescue Auth0::NotFound
70
+ 'No email provider configured'
72
71
  end
73
72
  end
74
- it do
73
+
74
+ it 'should get the existing email provider without specific fields' do
75
75
  begin
76
- sleep 1
77
76
  expect(
78
- client.get_provider(fields: [:enabled].join(','), include_fields: false).first
79
- ).to_not(include('enabled'))
80
- rescue
81
- 'no email provider'
77
+ client.get_provider(
78
+ fields: [:enabled].join(','),
79
+ include_fields: false
80
+ ).first
81
+ ).to_not include('enabled')
82
+ rescue Auth0::NotFound
83
+ 'No email provider configured'
82
84
  end
83
85
  end
84
86
  end
85
87
  end
86
88
 
87
- describe '.update_provider' do
88
- let(:update_name) { 'sendgrid' }
89
- let(:update_settings) do
90
- { 'first_up_setting' => 'first_up_setting_set', 'second_up_setting' => 'second_up_setting_set' }
91
- end
89
+ describe '.update_provider', vcr: true do
92
90
  let(:update_body) do
93
- { 'name' => update_name,
94
- 'settings' => update_settings }
91
+ {
92
+ name: 'sendgrid',
93
+ settings: {
94
+ first_up_setting: 'first_up_setting_set',
95
+ second_up_setting: 'second_up_setting_set'
96
+ }.merge(settings),
97
+ credentials: credentials
98
+ }
95
99
  end
96
- it do
97
- begin
98
- sleep 1
99
- expect(
100
- client.update_provider(update_body)
101
- ).to(
102
- include(
103
- 'name' => update_name, 'enabled' => enabled, 'credentials' => credentials, 'settings' => update_settings
104
- )
105
- )
106
- rescue
107
- puts 'email provider is not configured'
108
- end
100
+
101
+ it 'should update the existing email provider' do
102
+ expect(
103
+ JSON.parse(JSON[client.update_provider(update_body)], symbolize_names: true)
104
+ ).to include(update_body)
109
105
  end
110
106
  end
111
107
 
112
- describe '.delete_provider' do
113
- it do
114
- sleep 1
108
+ describe '.delete_provider', vcr: true do
109
+ it 'should delete the existing email provider without an error' do
115
110
  expect { client.delete_provider }.to_not raise_error
116
111
  end
117
- it do
118
- sleep 1
112
+
113
+ it 'should throw an error trying to get the email provider' do
119
114
  expect { client.get_provider }.to raise_error(Auth0::NotFound)
120
115
  end
121
116
  end
@@ -1,71 +1,124 @@
1
1
  require 'spec_helper'
2
2
  describe Auth0::Api::V2::Jobs do
3
- skip "Jobs examples are skipped to avoid Job's creation" do
4
- let(:client) { Auth0Client.new(v2_creds) }
5
- let(:username) { Faker::Internet.user_name }
6
- let(:email) { "#{entity_suffix}#{Faker::Internet.safe_email(username)}" }
3
+ UP_AUTH = Auth0::Api::AuthenticationEndpoints::UP_AUTH
7
4
 
8
- describe '.import_users and .get_job' do
9
- let(:file_content) do
10
- [{
11
- 'email' => email,
12
- 'email_verified' => false,
13
- 'app_metadata' => {
14
- 'roles' => ['admin'],
15
- 'plan' => 'premium'
16
- },
17
- 'user_metadata' => {
18
- 'theme' => 'light'
19
- }
20
- }]
21
- end
22
- let(:users_file) do
23
- File.new('temp.json', 'w+') { |f| f.write(file_content) }
24
- end
25
- let(:connection_id) do
26
- client.connections
27
- .find do |connection|
28
- connection['name'].include?(Auth0::Api::AuthenticationEndpoints::UP_AUTH)
29
- end['id']
30
- end
31
- let(:imported_users) { client.import_users(users_file, connection_id) }
32
- it do
33
- expect(imported_users).to include(
34
- 'connection' => Auth0::Api::AuthenticationEndpoints::UP_AUTH,
35
- 'status' => 'pending',
36
- 'type' => 'users_import'
37
- )
38
- end
39
- let(:import_job_id) { imported_users['id'] }
40
- it do
41
- expect(client.get_job(import_job_id)).to include(
42
- 'connection' => Auth0::Api::AuthenticationEndpoints::UP_AUTH, 'type' => 'users_import', 'id' => import_job_id
43
- )
44
- end
5
+ let(:client) { Auth0Client.new(v2_creds) }
6
+ let(:username) { Faker::Internet.user_name }
7
+ let(:email) { "#{entity_suffix}#{Faker::Internet.safe_email(name: username)}" }
8
+ let(:connection_id) do
9
+ VCR.use_cassette('Auth0_Api_V2_Jobs/search_for_connection_id') do
10
+ client.connections.find do |connection|
11
+ connection['name'].include?(UP_AUTH)
12
+ end['id']
13
+ end
14
+ end
15
+
16
+ describe '.import_users and .get_job', vcr: true do
17
+ let(:file_name) { 'spec/fixtures/api-jobs-spec-import-users.json' }
18
+ let(:file_content) do
19
+ [{
20
+ email: email,
21
+ email_verified: false,
22
+ app_metadata: { roles: ['admin'] },
23
+ user_metadata: { theme: 'light' }
24
+ }].to_json
25
+ end
26
+ let(:import_file) do
27
+ File.open(file_name, 'w+') { |f| f.write(file_content) }
28
+ File.new(file_name, 'rb')
29
+ end
30
+ let(:imported_users) { client.import_users(import_file, connection_id) }
31
+ let(:import_job_id) { imported_users['id'] }
32
+
33
+ it 'should create an import users job successfully' do
34
+ expect(imported_users).to include(
35
+ 'connection' => UP_AUTH,
36
+ 'type' => 'users_import'
37
+ )
38
+ end
39
+
40
+ it 'should get the import users job' do
41
+ expect(client.get_job(import_job_id)).to include(
42
+ 'connection' => UP_AUTH,
43
+ 'type' => 'users_import',
44
+ 'id' => import_job_id
45
+ )
46
+ end
47
+
48
+ after do
49
+ File.delete(file_name)
50
+ end
51
+ end
52
+
53
+ describe '.export_users and .get_job', vcr: true do
54
+ let(:exported_users) { client.export_users(connection_id: connection_id) }
55
+ let(:export_job_id) { exported_users['id'] }
56
+
57
+ it 'should create an export users job successfully' do
58
+ expect(exported_users).to include(
59
+ 'connection' => UP_AUTH,
60
+ 'type' => 'users_export'
61
+ )
45
62
  end
46
63
 
47
- describe '.send_verification_email and .get_job' do
48
- let(:user) do
49
- client.create_user(username, 'email' => email,
50
- 'password' => Faker::Internet.password,
51
- 'email_verified' => false,
52
- 'connection' => Auth0::Api::AuthenticationEndpoints::UP_AUTH,
53
- 'app_metadata' => {})
54
- end
55
- let(:email_verification_job) { client.send_verification_email(user['user_id']) }
56
- it { expect(email_verification_job).to include('status' => 'pending', 'type' => 'verification_email') }
57
- let(:email_job_id) { email_verification_job['id'] }
58
- it do
59
- expect(client.get_job(email_job_id)).to include(
60
- 'status' => 'completed', 'type' => 'verification_email', 'id' => email_job_id
61
- )
62
- end
64
+ it 'should get the export users job' do
65
+ expect(client.get_job(export_job_id)).to include(
66
+ 'connection' => UP_AUTH,
67
+ 'type' => 'users_export',
68
+ 'id' => export_job_id
69
+ )
63
70
  end
71
+ end
72
+
73
+ describe '.send_verification_email and .get_job', vcr: true do
74
+ let(:user) do
75
+ client.create_user(
76
+ username,
77
+ 'email' => email,
78
+ 'password' => Faker::Internet.password,
79
+ 'connection' => UP_AUTH
80
+ )
81
+ end
82
+ let(:email_verification_job) { client.send_verification_email(user['user_id']) }
83
+ let(:email_job_id) { email_verification_job['id'] }
84
+
85
+ it 'should create a new verification_email job' do
86
+ expect(
87
+ email_verification_job
88
+ ).to include('status' => 'pending', 'type' => 'verification_email')
89
+ end
90
+
91
+ it 'should get the completed verification_email' do
92
+ expect(client.get_job(email_job_id)).to include(
93
+ 'type' => 'verification_email',
94
+ 'id' => email_job_id
95
+ )
96
+ end
97
+
98
+ it 'should reject an invalid client_id' do
99
+ expect do
100
+ client.send_verification_email(user['user_id'], Random.new(32).to_s)
101
+ end.to raise_error Auth0::BadRequest
102
+ end
103
+
104
+ it 'should raise an error if the user id is empty' do
105
+ expect do
106
+ client.send_verification_email( '' )
107
+ end.to raise_error Auth0::InvalidParameter, 'Must specify a user id'
108
+ end
109
+
110
+ it 'should raise an error if the identity supplied is not a Hash' do
111
+ expect do
112
+ client.send_verification_email( 'user_id', identity: 'not a hash')
113
+ end.to raise_error Auth0::InvalidParameter, 'Identity must be a hash send an email verification'
114
+ end
115
+ end
64
116
 
65
- after(:all) do
117
+ after(:all) do
118
+ VCR.use_cassette('Auth0_Api_V2_Jobs/delete_imported_user') do
66
119
  new_client = Auth0Client.new(v2_creds)
67
- delete_user_id = new_client.get_users(q: 'email:@example.com').first['user_id']
68
- new_client.delete_user(delete_user_id)
120
+ delete_user = new_client.get_users(q: "email:#{entity_suffix}*").first
121
+ new_client.delete_user(delete_user['user_id']) unless delete_user.nil?
69
122
  end
70
123
  end
71
124
  end
@@ -1,83 +1,91 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Auth0::Api::V2::Logs do
4
- attr_reader :client, :user
4
+ attr_reader :client, :test_user
5
5
 
6
6
  before(:all) do
7
7
  @client = Auth0Client.new(v2_creds)
8
- username = Faker::Internet.user_name
9
- email = "#{entity_suffix}#{Faker::Internet.safe_email(username)}"
10
- password = Faker::Internet.password
11
- sleep 1
12
- @user = client.create_user(username, 'email' => email,
13
- 'password' => password,
14
- 'email_verified' => false,
15
- 'connection' => Auth0::Api::AuthenticationEndpoints::UP_AUTH,
16
- 'app_metadata' => {})
8
+ test_user_name = "#{entity_suffix}-username"
9
+
10
+ VCR.use_cassette('Auth0_Api_V2_Logs/create_test_user') do
11
+ @test_user = client.create_user(
12
+ test_user_name,
13
+ 'email' => "#{entity_suffix}-#{test_user_name}@auth0.com",
14
+ 'password' => Faker::Internet.password,
15
+ 'connection' => Auth0::Api::AuthenticationEndpoints::UP_AUTH
16
+ )
17
+ end
18
+
17
19
  end
18
20
 
19
21
  after(:all) do
20
- sleep 1
21
- client.delete_user(user['user_id'])
22
+ VCR.use_cassette('Auth0_Api_V2_Logs/delete_test_user') do
23
+ client.delete_user(test_user['user_id'])
24
+ end
22
25
  end
23
26
 
24
- describe '.logs' do
27
+ describe '.logs', vcr: true do
25
28
  let(:logs) do
26
- sleep 1
27
29
  client.logs
28
30
  end
29
31
 
30
32
  context '#filters' do
31
- it do
32
- sleep 1
33
+ it 'should have one log entry' do
33
34
  expect(client.logs(per_page: 1).size).to be 1
34
35
  end
35
- it do
36
- sleep 1
36
+
37
+ it 'should include the specified fields' do
37
38
  expect(
38
- client.logs(per_page: 1, fields: [:date, :description, :type].join(','), include_fields: true).first
39
+ client.logs(
40
+ per_page: 1,
41
+ fields: [:date, :description, :type].join(','),
42
+ include_fields: true
43
+ ).first
39
44
  ).to(include('date', 'description', 'type'))
40
45
  end
41
- it do
42
- sleep 1
43
- expect(client.logs(per_page: 1, fields: [:date].join(',')).first).to_not include('type', 'description')
46
+
47
+ it 'should exclude fields not specified' do
48
+ expect(
49
+ client.logs(
50
+ per_page: 1,
51
+ fields: [:date].join(',')
52
+ ).first
53
+ ).to_not include('type', 'description')
44
54
  end
45
- it do
46
- sleep 1
55
+
56
+ it 'should exclude the specified fields' do
47
57
  expect(
48
- client.logs(per_page: 1, fields: [:date].join(','), include_fields: false).first
58
+ client.logs(
59
+ per_page: 1,
60
+ fields: [:date].join(','),
61
+ include_fields: false
62
+ ).first
49
63
  ).to include('type', 'description')
50
64
  end
51
65
  end
52
66
 
53
67
  context '#from' do
54
- it do
55
- sleep 1
68
+ it 'should take one log entry' do
56
69
  expect(client.logs(from: logs.last['_id'], take: 1).size).to be 1
57
70
  end
58
71
  end
59
72
  end
60
73
 
61
- describe '.log' do
74
+ describe '.log', vcr: true do
62
75
  let(:first_log) do
63
- sleep 1
64
76
  client.logs.first
65
77
  end
78
+
66
79
  let(:log) do
67
- sleep 1
68
80
  client.log(first_log['_id'])
69
81
  end
70
- it do
71
- sleep 1
82
+
83
+ it 'should not be empty' do
72
84
  expect(log).to_not be_empty
73
85
  end
74
- it do
75
- sleep 1
86
+
87
+ it 'should match the created log entry' do
76
88
  expect(log['_id']).to eq(first_log['_id'])
77
89
  end
78
- it do
79
- sleep 1
80
- expect(log['date']).to eq(first_log['date'])
81
- end
82
90
  end
83
91
  end