auth0 5.5.0 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +20 -0
- data/Gemfile +1 -0
- data/README.md +10 -8
- data/auth0.gemspec +1 -1
- data/lib/auth0/api/authentication_endpoints.rb +40 -16
- data/lib/auth0/api/v2/actions.rb +210 -0
- data/lib/auth0/api/v2/grants.rb +49 -0
- data/lib/auth0/api/v2.rb +4 -0
- data/lib/auth0/exception.rb +12 -0
- data/lib/auth0/mixins/api_token_struct.rb +0 -1
- data/lib/auth0/mixins/httpproxy.rb +10 -5
- data/lib/auth0/mixins/initializer.rb +1 -3
- data/lib/auth0/mixins/token_management.rb +32 -0
- data/lib/auth0/mixins/validation.rb +1 -1
- data/lib/auth0/mixins.rb +2 -0
- data/lib/auth0/version.rb +1 -1
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_change_password/should_trigger_a_password_reset.yml +53 -23
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_incorrect_email.yml +49 -18
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_incorrect_password.yml +49 -18
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_fail_with_an_invalid_audience.yml +46 -15
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_login_successfully_with_a_custom_audience.yml +49 -79
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_login_with_resource_owner/should_login_successfully_with_a_default_scope.yml +49 -80
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_saml_metadata/should_retrieve_SAML_metadata.yml +74 -21
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_userinfo/should_fail_as_not_authorized.yml +53 -14
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_userinfo/should_return_the_userinfo.yml +106 -48
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/_wsfed_metadata/should_retrieve_WSFED_metadata.yml +62 -19
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/create_test_user.yml +57 -22
- data/spec/fixtures/vcr_cassettes/Auth0_Api_AuthenticationEndpoints/delete_test_user.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Blacklists/_add_token_to_blacklist/should_add_a_token_to_the_blacklist.yml +37 -19
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Blacklists/_blacklisted_tokens/should_get_the_added_token_from_the_blacklist.yml +38 -23
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_at_least_1_result.yml +42 -26
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_the_test_client_grant.yml +42 -26
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_delete_client_grant/should_delete_the_test_client_grant.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_patch_client_grant/should_update_the_test_client_grant.yml +39 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/create_test_client.yml +44 -82
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/create_test_client_grant.yml +39 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/delete_test_client.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/delete_test_client_grant.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/_filters/should_exclude_and_include_fields_properly.yml +43 -56
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/_filters/should_include_the_specified_fields.yml +39 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_client/should_get_the_test_client.yml +43 -57
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_exclude_fields_not_specified.yml +43 -24
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_exclude_the_specified_fields.yml +236 -96
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_include_the_specified_fields.yml +52 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/_filters/should_paginate_results.yml +39 -25
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_clients/should_get_at_least_one_client.yml +235 -96
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_delete_client/should_delete_the_test_client_without_an_error.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/_patch_client/should_update_the_client_with_the_correct_attributes.yml +43 -57
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Clients/create_test_client.yml +45 -82
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/_filters/should_exclude_the_fields_indicated.yml +15 -16
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/_filters/should_include_the_fields_indicated.yml +15 -16
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connection/should_find_the_correct_connection.yml +15 -16
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_include_previously-created_connection_when_filtered.yml +14 -15
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_should_exclude_the_fields_indicated_from_filtered_results.yml +14 -15
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/_filters/should_should_include_the_fields_indicated_from_filtered_results.yml +14 -15
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/should_include_the_previously_created_connection.yml +15 -15
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_connections/should_not_be_empty.yml +15 -15
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_delete_connection/should_delete_the_connection.yml +15 -16
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_delete_connection_user/should_delete_the_user_created.yml +29 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/_update_connection/should_update_the_connection.yml +15 -16
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/create_test_connection.yml +16 -17
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Connections/create_test_user.yml +40 -32
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/create_test_credential.yml +40 -30
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/create_test_user.yml +40 -32
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/delete_test_user.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_configure_provider/should_configure_a_new_email_provider.yml +37 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_delete_provider/should_delete_the_existing_email_provider_without_an_error.yml +37 -19
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_delete_provider/should_throw_an_error_trying_to_get_the_email_provider.yml +34 -16
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/_filters/should_get_the_existing_email_provider_with_specific_fields.yml +36 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/_filters/should_get_the_existing_email_provider_without_specific_fields.yml +36 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_get_provider/should_get_the_existing_email_provider.yml +36 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/_update_provider/should_update_the_existing_email_provider.yml +36 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Emails/delete_existing_provider.yml +37 -19
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_export_users_and_get_job/should_create_an_export_users_job_successfully.yml +38 -23
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_export_users_and_get_job/should_get_the_export_users_job.yml +76 -46
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_import_users_and_get_job/should_create_an_import_users_job_successfully.yml +46 -25
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_import_users_and_get_job/should_get_the_import_users_job.yml +84 -48
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_create_a_new_verification_email_job.yml +77 -47
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_get_the_completed_verification_email.yml +116 -71
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/_send_verification_email_and_get_job/should_reject_an_invalid_client_id.yml +76 -39
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/delete_imported_user.yml +76 -43
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Jobs/search_for_connection_id.yml +43 -23
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_log/should_match_the_created_log_entry.yml +224 -196
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_log/should_not_be_empty.yml +224 -196
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_exclude_fields_not_specified.yml +38 -25
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_exclude_the_specified_fields.yml +39 -39
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_have_one_log_entry.yml +41 -40
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_filters/should_include_the_specified_fields.yml +38 -26
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/_logs/_from/should_take_one_log_entry.yml +229 -189
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/create_test_user.yml +40 -32
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_disabled_rule.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_enabled_rule.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Logs/delete_test_user.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_delete_resource_server/should_delete_the_test_server_without_an_error.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_patch_resource_server/should_update_the_resource_server_with_the_correct_attributes.yml +39 -24
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_server/should_get_the_test_server.yml +39 -24
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_get_the_test_server.yml +146 -23
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_return_at_least_1_result.yml +146 -23
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/_resource_servers/should_return_the_first_page_of_one_result.yml +131 -24
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/create_test_server.yml +40 -25
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ResourceServers/delete_test_server.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_add_role_permissions/should_add_a_Permission_to_the_Role_successfully.yml +39 -32
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_add_role_users/should_add_a_User_to_the_Role_successfully.yml +38 -31
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_delete_role/should_delete_the_Role_successfully.yml +42 -30
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role/should_get_the_Role_successfully.yml +38 -30
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_permissions/should_get_exactly_1_Permission.yml +37 -30
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_permissions/should_get_the_added_Permission_from_the_Role_successfully.yml +37 -30
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_users/should_get_exactly_1_User.yml +37 -30
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_role_users/should_get_the_added_User_from_the_Role_successfully.yml +37 -30
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_get_roles/should_get_the_Role_successfully.yml +37 -29
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_remove_role_permissions/should_remove_a_Permission_from_the_Role_successfully.yml +39 -29
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/_update_role/should_update_the_Role_successfully.yml +37 -30
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_api.yml +38 -31
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_role.yml +39 -31
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/create_test_user.yml +38 -31
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/delete_test_api.yml +36 -26
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Roles/delete_test_user.yml +36 -26
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_delete_rule/should_delete_the_test_disabled_rule_without_an_error.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_delete_rule/should_delete_the_test_enabled_rule_without_an_error.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_exclude_the_fields_not_specified.yml +40 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_exclude_the_specified_fields.yml +40 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/_filters/should_include_the_specified_fields.yml +39 -26
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rule/should_get_a_specific_rule.yml +40 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_exclude_fields_not_specified.yml +80 -24
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_include_the_specified_fields.yml +82 -25
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_at_least_1_disabled_rule.yml +59 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_at_least_1_enabled_rule.yml +68 -26
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/_filters/should_return_paginated_results.yml +78 -49
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_rules/should_return_at_least_1_rule.yml +84 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/_update_rule/should_update_the_disabled_rule_to_be_enabled.yml +40 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/create_test_disabled_rule.yml +42 -29
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Rules/create_test_enabled_rule.yml +42 -29
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Stats/_active_users/should_have_at_least_one_active_user.yml +38 -23
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Stats/_daily_stats/should_have_at_least_one_stats_entry_for_the_timeframe.yml +38 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings/should_get_the_tenant_settings.yml +72 -59
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings_with_specific_fields/should_exclude_a_field_not_requested.yml +38 -25
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_get_tenant_settings_with_specific_fields/should_include_the_field_requested.yml +38 -25
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_update_tenant_settings/should_revert_the_tenant_name.yml +72 -58
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tenants/_update_tenant_settings/should_update_the_tenant_settings_with_a_new_tenant_name.yml +72 -58
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/_post_email_verification/should_create_an_email_verification_ticket.yml +39 -26
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/_post_password_change/should_create_a_password_change_ticket.yml +39 -26
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/create_test_user.yml +40 -32
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Tickets/delete_test_user.yml +38 -20
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_add_user_permissions/should_add_a_Permissions_for_a_User_successfully.yml +39 -35
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_add_user_roles/should_add_a_Role_to_a_User_successfully.yml +37 -25
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user/should_delete_the_User_successfully.yml +36 -24
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user/should_delete_the_secondary_User_successfully.yml +36 -24
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_delete_user_provider/should_attempt_to_delete_the_MFA_provider_for_the_User.yml +36 -24
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_enrollments/should_get_Enrollments_for_a_User_successfully.yml +37 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_permissions/should_get_exactly_1_Permission_for_a_User_successfully.yml +37 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_permissions/should_get_the_correct_Permission_for_a_User_successfully.yml +37 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_get_user_roles/should_get_Roles_for_a_User_successfully.yml +38 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_invalidate_browsers/should_invalidate_MFA_browsers_for_the_User_successfully.yml +36 -24
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_link_user_account/should_link_two_Users_successfully.yml +38 -29
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_patch_user/should_patch_the_User_successfully.yml +38 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_remove_user_permissions/should_remove_a_Permission_from_a_User_successfully.yml +39 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_remove_user_roles/should_remove_a_Role_from_a_User_successfully.yml +39 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_unlink_user_account/should_unlink_two_Users_successfully.yml +37 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_exclude_fields_not_indicated.yml +37 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_exclude_the_fields_indicated.yml +37 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/_filters/should_include_the_fields_indicated.yml +37 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user/should_retrieve_the_created_user.yml +37 -28
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_user_logs/should_get_Logs_for_a_User_successfully.yml +42 -30
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/is_expected_to_find_a_user_with_a_v2_search_engine_query.yml +36 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/is_expected_to_find_a_user_with_a_v3_search_engine_query.yml +36 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_exclude_the_indicated_fields_when_paginated.yml +36 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_include_the_indicated_fields_when_paginated.yml +36 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_not_include_other_fields_when_paginated.yml +36 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/_filters/should_return_the_correct_number_of_results_when_paginated.yml +36 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/_users/should_have_at_least_one_user.yml +37 -27
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_secondary_test_user.yml +38 -29
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_api.yml +38 -29
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_role.yml +39 -29
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/create_test_user.yml +38 -29
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/delete_test_api.yml +36 -24
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Users/delete_test_role.yml +42 -28
- data/spec/integration/lib/auth0/api/v2/api_client_grants_spec.rb +0 -9
- data/spec/integration/lib/auth0/api/v2/api_connections_spec.rb +3 -3
- data/spec/integration/lib/auth0/api/v2/api_email_spec.rb +0 -31
- data/spec/integration/lib/auth0/api/v2/api_jobs_spec.rb +4 -4
- data/spec/integration/lib/auth0/api/v2/api_logs_spec.rb +5 -5
- data/spec/integration/lib/auth0/api/v2/api_roles_spec.rb +3 -3
- data/spec/integration/lib/auth0/api/v2/api_tickets_spec.rb +4 -4
- data/spec/integration/lib/auth0/api/v2/api_user_blocks_spec.rb +8 -5
- data/spec/integration/lib/auth0/api/v2/api_users_spec.rb +6 -33
- data/spec/lib/auth0/api/v2/actions_spec.rb +312 -0
- data/spec/lib/auth0/api/v2/grants_spec.rb +91 -0
- data/spec/lib/auth0/client_spec.rb +3 -3
- data/spec/lib/auth0/mixins/httpproxy_spec.rb +104 -0
- data/spec/lib/auth0/mixins/initializer_spec.rb +84 -4
- data/spec/lib/auth0/mixins/token_management_spec.rb +125 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/support/dummy_class_for_proxy.rb +1 -0
- data/spec/support/dummy_class_for_tokens.rb +17 -0
- metadata +16 -25
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Anomaly/_check_if_ip_is_blocked/should_return_200_response_code.yml +0 -65
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_Anomaly/_remove_ip_block/should_remove_an_IP_successfully.yml +0 -60
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_ClientGrants/_client_grants/should_return_the_first_page_of_one_result.yml +0 -66
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_delete_device_credential/should_delete_the_test_credential_without_an_error.yml +0 -54
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_device_credentials/_filter_by_type/should_exclude_the_test_credential.yml +0 -59
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_device_credentials/should_have_at_least_1_entry.yml +0 -62
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/_device_credentials/should_include_the_test_credential.yml +0 -62
- data/spec/fixtures/vcr_cassettes/Auth0_Api_V2_DeviceCredentials/delete_test_credential.yml +0 -54
- data/spec/integration/lib/auth0/api/v2/api_anomaly_spec.rb +0 -17
- data/spec/integration/lib/auth0/api/v2/api_device_credentials_spec.rb +0 -128
|
@@ -8,11 +8,14 @@ describe Auth0::Api::V2::UserBlocks do
|
|
|
8
8
|
username = Faker::Internet.user_name
|
|
9
9
|
@email = "#{entity_suffix}#{Faker::Internet.safe_email(name: username)}"
|
|
10
10
|
password = Faker::Internet.password
|
|
11
|
-
@user = client.create_user(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
@user = client.create_user(
|
|
12
|
+
Auth0::Api::AuthenticationEndpoints::UP_AUTH,
|
|
13
|
+
name: username,
|
|
14
|
+
email: email,
|
|
15
|
+
email_verified: true,
|
|
16
|
+
app_metadata: {},
|
|
17
|
+
password: Faker::Internet.password
|
|
18
|
+
)
|
|
16
19
|
end
|
|
17
20
|
|
|
18
21
|
after(:all) do
|
|
@@ -18,19 +18,19 @@ describe Auth0::Api::V2::Users do
|
|
|
18
18
|
|
|
19
19
|
VCR.use_cassette('Auth0_Api_V2_Users/create_test_user') do
|
|
20
20
|
@test_user ||= client.create_user(
|
|
21
|
-
|
|
21
|
+
Auth0::Api::AuthenticationEndpoints::UP_AUTH,
|
|
22
|
+
name: @test_user_name,
|
|
22
23
|
email: @test_user_email,
|
|
23
|
-
password: Faker::Internet.password
|
|
24
|
-
connection: Auth0::Api::AuthenticationEndpoints::UP_AUTH
|
|
24
|
+
password: Faker::Internet.password
|
|
25
25
|
)
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
VCR.use_cassette('Auth0_Api_V2_Users/create_secondary_test_user') do
|
|
29
29
|
@test_user_secondary ||= client.create_user(
|
|
30
|
-
|
|
30
|
+
Auth0::Api::AuthenticationEndpoints::UP_AUTH,
|
|
31
|
+
name: "#{test_user_name}-secondary",
|
|
31
32
|
email: "#{entity_suffix}-#{@test_user_name}-secondary@auth0.com",
|
|
32
|
-
password: Faker::Internet.password
|
|
33
|
-
connection: Auth0::Api::AuthenticationEndpoints::UP_AUTH
|
|
33
|
+
password: Faker::Internet.password
|
|
34
34
|
)
|
|
35
35
|
end
|
|
36
36
|
|
|
@@ -255,33 +255,6 @@ describe Auth0::Api::V2::Users do
|
|
|
255
255
|
end
|
|
256
256
|
end
|
|
257
257
|
|
|
258
|
-
describe '.add_user_permissions', vcr: true do
|
|
259
|
-
it 'should add a Permissions for a User successfully' do
|
|
260
|
-
expect { client.add_user_permissions test_user['user_id'], [ test_permission ] }.to_not raise_error
|
|
261
|
-
end
|
|
262
|
-
end
|
|
263
|
-
|
|
264
|
-
describe '.get_user_permissions', vcr: true do
|
|
265
|
-
let(:test_get_user_permissions) do
|
|
266
|
-
client.get_user_permissions test_user['user_id']
|
|
267
|
-
end
|
|
268
|
-
|
|
269
|
-
it 'should get exactly 1 Permission for a User successfully' do
|
|
270
|
-
expect( test_get_user_permissions.count ).to eq 1
|
|
271
|
-
end
|
|
272
|
-
|
|
273
|
-
it 'should get the correct Permission for a User successfully' do
|
|
274
|
-
expect( test_get_user_permissions.first['permission_name'] ).to eq test_permission_name
|
|
275
|
-
expect( test_get_user_permissions.first['resource_server_name'] ).to eq test_api_name
|
|
276
|
-
end
|
|
277
|
-
end
|
|
278
|
-
|
|
279
|
-
describe '.remove_user_permissions', vcr: true do
|
|
280
|
-
it 'should remove a Permission from a User successfully' do
|
|
281
|
-
expect { client.remove_user_permissions test_user['user_id'], [ test_permission ] }.to_not raise_error
|
|
282
|
-
end
|
|
283
|
-
end
|
|
284
|
-
|
|
285
258
|
describe '.invalidate_browsers', vcr: true do
|
|
286
259
|
it 'should invalidate MFA browsers for the User successfully' do
|
|
287
260
|
expect { client.invalidate_browsers test_user['user_id'] }.to_not raise_error
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe Auth0::Api::V2::Actions do
|
|
3
|
+
before :all do
|
|
4
|
+
dummy_instance = DummyClass.new
|
|
5
|
+
dummy_instance.extend(Auth0::Api::V2::Actions)
|
|
6
|
+
@instance = dummy_instance
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
context '.actions' do
|
|
10
|
+
it 'is expected to respond to a actions method' do
|
|
11
|
+
expect(@instance).to respond_to(:actions)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it 'is expected to respond to a get_actions method' do
|
|
15
|
+
expect(@instance).to respond_to(:get_actions)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it 'is expected to get /api/v2/actions with custom parameters' do
|
|
19
|
+
expect(@instance).to receive(:get).with(
|
|
20
|
+
'/api/v2/actions/actions',
|
|
21
|
+
trigger_id: 'post-login',
|
|
22
|
+
action_name: 'loginHandler',
|
|
23
|
+
deployed: true,
|
|
24
|
+
per_page: 10,
|
|
25
|
+
page: 1,
|
|
26
|
+
installed: true
|
|
27
|
+
)
|
|
28
|
+
expect do
|
|
29
|
+
@instance.actions(
|
|
30
|
+
'post-login',
|
|
31
|
+
'loginHandler',
|
|
32
|
+
deployed: true,
|
|
33
|
+
per_page: 10,
|
|
34
|
+
page: 1,
|
|
35
|
+
installed: true
|
|
36
|
+
)
|
|
37
|
+
end.not_to raise_error
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
it 'is expected to raise an exception when the trigger id is empty' do
|
|
41
|
+
expect { @instance.actions(nil, nil) }.to raise_exception(Auth0::MissingTriggerId)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
it 'is expected to raise an exception when the action name is empty' do
|
|
45
|
+
expect { @instance.actions(1, nil) }.to raise_exception(Auth0::MissingActionName)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
context '.action' do
|
|
50
|
+
it 'is expected to respond to a action method' do
|
|
51
|
+
expect(@instance).to respond_to(:action)
|
|
52
|
+
expect(@instance).to respond_to(:get_action)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
it 'is expected to call get request to /api/v2/actions/actions/{id}' do
|
|
56
|
+
expect(@instance).to receive(:get).with(
|
|
57
|
+
'/api/v2/actions/actions/123'
|
|
58
|
+
)
|
|
59
|
+
expect { @instance.action('123') }.not_to raise_error
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it 'is expected to raise an exception when the action ID is empty' do
|
|
63
|
+
expect { @instance.action(nil) }.to raise_exception(Auth0::MissingActionId)
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
context '.create_action' do
|
|
68
|
+
it 'is expected to respond to a create_action method' do
|
|
69
|
+
expect(@instance).to respond_to(:create_action)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
it 'is expected to post to /api/v2/actions' do
|
|
73
|
+
expect(@instance).to receive(:post).with(
|
|
74
|
+
'/api/v2/actions',
|
|
75
|
+
name: 'test_org'
|
|
76
|
+
)
|
|
77
|
+
expect do
|
|
78
|
+
@instance.create_action(
|
|
79
|
+
name: 'test_org'
|
|
80
|
+
)
|
|
81
|
+
end.not_to raise_error
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
context '.delete_action' do
|
|
86
|
+
it 'is expected to respond to a delete_action method' do
|
|
87
|
+
expect(@instance).to respond_to :delete_action
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
it 'is expected to call delete to /api/v2/actions/actions/{id}' do
|
|
91
|
+
expect(@instance).to receive(:delete).with('/api/v2/actions/actions/123', { force: false })
|
|
92
|
+
expect { @instance.delete_action('123') }.not_to raise_error
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
it 'is expected not to delete /api/v2/actions if action_id is blank' do
|
|
96
|
+
expect(@instance).not_to receive(:delete)
|
|
97
|
+
expect { @instance.delete_action(nil) }.to raise_exception(
|
|
98
|
+
Auth0::MissingActionId
|
|
99
|
+
)
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
context '.patch_action' do
|
|
104
|
+
it 'is expected to respond to a patch_action method' do
|
|
105
|
+
expect(@instance).to respond_to(:patch_action)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
it 'is expected to respond to a update_action method' do
|
|
109
|
+
expect(@instance).to respond_to(:update_action)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
it 'is expected to patch /api/v2/actions/actions/{id}' do
|
|
113
|
+
expect(@instance).to receive(:patch).with(
|
|
114
|
+
'/api/v2/actions/actions/123',
|
|
115
|
+
{ name: 'name' }
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
expect { @instance.patch_action('123', { name: 'name' }) }.not_to raise_error
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
context '.execution' do
|
|
123
|
+
it 'is expected to respond to a user method' do
|
|
124
|
+
expect(@instance).to respond_to(:execution)
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
it 'is expected to call get request to /api/v2/actions/executions/{id}' do
|
|
128
|
+
expect(@instance).to receive(:get).with('/api/v2/actions/executions/123')
|
|
129
|
+
expect { @instance.execution('123') }.not_to raise_error
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
it 'is expected to raise an exception when the execution ID is empty' do
|
|
133
|
+
expect { @instance.execution(nil) }.to raise_exception(Auth0::MissingExecutionId)
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
context '.actions_versions' do
|
|
138
|
+
it 'is expected to respond to a user method' do
|
|
139
|
+
expect(@instance).to respond_to(:actions_versions)
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
it 'is expected to call get request to /api/v2/actions/actions/{id}/versions' do
|
|
143
|
+
expect(@instance).to receive(:get).with(
|
|
144
|
+
'/api/v2/actions/actions/123/versions',
|
|
145
|
+
per_page: nil,
|
|
146
|
+
page: nil
|
|
147
|
+
)
|
|
148
|
+
expect { @instance.actions_versions('123') }.not_to raise_error
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
it 'is expected to raise an exception when the action ID is empty' do
|
|
152
|
+
expect { @instance.actions_versions(nil) }.to raise_exception(Auth0::MissingActionId)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
it 'is expected to get /api/v2/actions/actions/{id}/versions with custom parameters' do
|
|
156
|
+
expect(@instance).to receive(:get).with(
|
|
157
|
+
'/api/v2/actions/actions/123/versions',
|
|
158
|
+
per_page: 10,
|
|
159
|
+
page: 1
|
|
160
|
+
)
|
|
161
|
+
expect do
|
|
162
|
+
@instance.actions_versions(
|
|
163
|
+
'123',
|
|
164
|
+
per_page: 10,
|
|
165
|
+
page: 1
|
|
166
|
+
)
|
|
167
|
+
end.not_to raise_error
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
context '.trigger_bindings' do
|
|
172
|
+
it 'is expected to respond to a trigger_bindings method' do
|
|
173
|
+
expect(@instance).to respond_to(:trigger_bindings)
|
|
174
|
+
expect(@instance).to respond_to(:get_trigger_bindings)
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
it 'is expected to call get request to /api/v2/actions/triggers/{id}/bindings' do
|
|
178
|
+
expect(@instance).to receive(:get).with(
|
|
179
|
+
'/api/v2/actions/triggers/123/bindings',
|
|
180
|
+
per_page: nil,
|
|
181
|
+
page: nil
|
|
182
|
+
)
|
|
183
|
+
expect { @instance.trigger_bindings('123') }.not_to raise_error
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
it 'is expected to raise an exception when the action_id ID is empty' do
|
|
187
|
+
expect { @instance.trigger_bindings(nil) }.to raise_exception(Auth0::MissingTriggerId)
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
it 'is expected to get /api/v2/actions/triggers/{id}/bindings with custom parameters' do
|
|
191
|
+
expect(@instance).to receive(:get).with(
|
|
192
|
+
'/api/v2/actions/triggers/123/bindings',
|
|
193
|
+
per_page: 10,
|
|
194
|
+
page: 1
|
|
195
|
+
)
|
|
196
|
+
expect do
|
|
197
|
+
@instance.trigger_bindings(
|
|
198
|
+
'123',
|
|
199
|
+
per_page: 10,
|
|
200
|
+
page: 1
|
|
201
|
+
)
|
|
202
|
+
end.not_to raise_error
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
context '.patch_trigger_bindings' do
|
|
208
|
+
it 'is expected to respond to a patch_trigger_bindings method' do
|
|
209
|
+
expect(@instance).to respond_to(:patch_trigger_bindings)
|
|
210
|
+
expect(@instance).to respond_to(:update_trigger_bindings)
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
it 'is expected to patch /api/v2/actions/triggers/{id}/bindings' do
|
|
214
|
+
expect(@instance).to receive(:patch).with(
|
|
215
|
+
'/api/v2/actions/triggers/post-login/bindings',
|
|
216
|
+
{ name: 'name' }
|
|
217
|
+
)
|
|
218
|
+
expect { @instance.patch_trigger_bindings('post-login', { :name => 'name' }) }.not_to raise_error
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
it 'is expected to raise an exception when the trigger ID is empty' do
|
|
222
|
+
expect { @instance.patch_trigger_bindings(nil) }.to raise_exception(Auth0::MissingTriggerId)
|
|
223
|
+
end
|
|
224
|
+
|
|
225
|
+
it 'is expected to raise an exception when the body is empty' do
|
|
226
|
+
expect { @instance.patch_trigger_bindings('post-login') }.to raise_exception(Auth0::InvalidParameter)
|
|
227
|
+
end
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
context '.action_by_version' do
|
|
231
|
+
it 'is expected to respond to a action_by_version method' do
|
|
232
|
+
expect(@instance).to respond_to(:action_by_version)
|
|
233
|
+
expect(@instance).to respond_to(:get_action_by_version)
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
it 'is expected to call get request to /api/v2/actions/actions/{id}/versions/{version_id}' do
|
|
237
|
+
expect(@instance).to receive(:get).with(
|
|
238
|
+
'/api/v2/actions/actions/123/versions/v1'
|
|
239
|
+
)
|
|
240
|
+
expect { @instance.action_by_version('123', 'v1') }.not_to raise_error
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
it 'is expected to raise an exception when the action ID is empty' do
|
|
244
|
+
expect { @instance.action_by_version(nil, nil) }.to raise_exception(Auth0::MissingActionId)
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
it 'is expected to raise an exception when the version ID is empty' do
|
|
248
|
+
expect { @instance.action_by_version('123', nil) }.to raise_exception(Auth0::MissingVersionId)
|
|
249
|
+
end
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
context '.deploy_action' do
|
|
253
|
+
it 'is expected to respond to a deploy_action method' do
|
|
254
|
+
expect(@instance).to respond_to(:deploy_action)
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
it 'is expected to call post request to /api/v2/actions/actions/{id}/deploy' do
|
|
258
|
+
expect(@instance).to receive(:post).with(
|
|
259
|
+
'/api/v2/actions/actions/123/deploy'
|
|
260
|
+
)
|
|
261
|
+
expect { @instance.deploy_action('123') }.not_to raise_error
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
it 'is expected to raise an exception when the action ID is empty' do
|
|
265
|
+
expect { @instance.deploy_action(nil) }.to raise_exception(Auth0::MissingActionId)
|
|
266
|
+
end
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
context '.test_action' do
|
|
270
|
+
it 'is expected to respond to a test_action method' do
|
|
271
|
+
expect(@instance).to respond_to(:test_action)
|
|
272
|
+
end
|
|
273
|
+
|
|
274
|
+
it 'is expected to raise an exception when the action ID is empty' do
|
|
275
|
+
expect { @instance.test_action(nil) }.to raise_exception(Auth0::MissingActionId)
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
it 'is expected to post to /api/v2/actions/{id}/test' do
|
|
279
|
+
expect(@instance).to receive(:post).with(
|
|
280
|
+
'/api/v2/actions/actions/123/test',
|
|
281
|
+
name: 'test_org'
|
|
282
|
+
)
|
|
283
|
+
expect do
|
|
284
|
+
@instance.test_action(
|
|
285
|
+
'123',
|
|
286
|
+
name: 'test_org'
|
|
287
|
+
)
|
|
288
|
+
end.not_to raise_error
|
|
289
|
+
end
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
context '.rollback_action' do
|
|
293
|
+
it 'is expected to respond to a rollback_action method' do
|
|
294
|
+
expect(@instance).to respond_to(:rollback_action)
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
it 'is expected to call post request to /api/v2/actions/actions/{id}/versions/{version_id}/deploy' do
|
|
298
|
+
expect(@instance).to receive(:post).with(
|
|
299
|
+
'/api/v2/actions/actions/123/versions/v1/deploy'
|
|
300
|
+
)
|
|
301
|
+
expect { @instance.rollback_action('123', 'v1') }.not_to raise_error
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
it 'is expected to raise an exception when the action ID is empty' do
|
|
305
|
+
expect { @instance.rollback_action(nil, nil) }.to raise_exception(Auth0::MissingActionId)
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
it 'is expected to raise an exception when the version ID is empty' do
|
|
309
|
+
expect { @instance.rollback_action('123', nil) }.to raise_exception(Auth0::MissingVersionId)
|
|
310
|
+
end
|
|
311
|
+
end
|
|
312
|
+
end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
describe Auth0::Api::V2::Grants do
|
|
3
|
+
before :all do
|
|
4
|
+
dummy_instance = DummyClass.new
|
|
5
|
+
dummy_instance.extend(Auth0::Api::V2::Grants)
|
|
6
|
+
@instance = dummy_instance
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
context '.grants' do
|
|
10
|
+
it { expect(@instance).to respond_to(:grants) }
|
|
11
|
+
it { expect(@instance).to respond_to(:get_all_grants) }
|
|
12
|
+
|
|
13
|
+
it 'is expected to get /api/v2/grants/' do
|
|
14
|
+
expect(@instance).to receive(:get).with(
|
|
15
|
+
'/api/v2/grants',
|
|
16
|
+
client_id: nil,
|
|
17
|
+
user_id: nil,
|
|
18
|
+
audience: nil,
|
|
19
|
+
page: nil,
|
|
20
|
+
per_page: nil,
|
|
21
|
+
include_totals: nil
|
|
22
|
+
)
|
|
23
|
+
expect { @instance.grants }.not_to raise_error
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'is expected to send get /api/v2/grants/ with client_id and audience' do
|
|
27
|
+
audience = "https://samples.auth0.com/api/v2/"
|
|
28
|
+
|
|
29
|
+
expect(@instance).to receive(:get).with(
|
|
30
|
+
'/api/v2/grants',
|
|
31
|
+
client_id: '1',
|
|
32
|
+
user_id: nil,
|
|
33
|
+
audience: audience,
|
|
34
|
+
page: nil,
|
|
35
|
+
per_page: nil,
|
|
36
|
+
include_totals: nil
|
|
37
|
+
)
|
|
38
|
+
expect { @instance.grants(client_id: '1', audience: audience) }.not_to raise_error
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it 'is expected to send get /api/v2/grants/ with client_id and user_id' do
|
|
42
|
+
expect(@instance).to receive(:get).with(
|
|
43
|
+
'/api/v2/grants',
|
|
44
|
+
client_id: '1',
|
|
45
|
+
user_id: '1',
|
|
46
|
+
audience: nil,
|
|
47
|
+
page: nil,
|
|
48
|
+
per_page: nil,
|
|
49
|
+
include_totals: nil
|
|
50
|
+
)
|
|
51
|
+
expect { @instance.grants(client_id: '1', user_id: '1') }.not_to raise_error
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
it 'is expected to send get /api/v2/grants/ with pagination' do
|
|
55
|
+
expect(@instance).to receive(:get).with(
|
|
56
|
+
'/api/v2/grants',
|
|
57
|
+
client_id: nil,
|
|
58
|
+
user_id: nil,
|
|
59
|
+
audience: nil,
|
|
60
|
+
page: 1,
|
|
61
|
+
per_page: 2,
|
|
62
|
+
include_totals: nil
|
|
63
|
+
)
|
|
64
|
+
expect { @instance.grants(page: 1, per_page: 2) }.not_to raise_error
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
it 'is expected to send get /api/v2/grants/ with include_totals' do
|
|
68
|
+
expect(@instance).to receive(:get).with(
|
|
69
|
+
'/api/v2/grants',
|
|
70
|
+
client_id: nil,
|
|
71
|
+
user_id: nil,
|
|
72
|
+
audience: nil,
|
|
73
|
+
page: 1,
|
|
74
|
+
per_page: 2,
|
|
75
|
+
include_totals: true
|
|
76
|
+
)
|
|
77
|
+
expect { @instance.grants(page: 1, per_page: 2, include_totals: true) }.not_to raise_error
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
context '.delete_grant' do
|
|
82
|
+
it { expect(@instance).to respond_to(:delete_grant) }
|
|
83
|
+
it 'is expected to send delete to /api/v2/grants/1?user_id=1' do
|
|
84
|
+
expect(@instance).to receive(:delete).with('/api/v2/grants/1?user_id=1')
|
|
85
|
+
expect { @instance.delete_grant('1', '1') }.not_to raise_error
|
|
86
|
+
end
|
|
87
|
+
it { expect { @instance.delete_grant('', '') }.to raise_error 'Must specify a grant id as id' }
|
|
88
|
+
it { expect { @instance.delete_grant('', '1') }.to raise_error 'Must specify a grant id as id' }
|
|
89
|
+
it { expect { @instance.delete_grant('1', '') }.to raise_error 'Must specify a user id' }
|
|
90
|
+
end
|
|
91
|
+
end
|
|
@@ -134,7 +134,7 @@ describe Auth0::Client do
|
|
|
134
134
|
it_should_behave_like 'Authentication API client'
|
|
135
135
|
end
|
|
136
136
|
|
|
137
|
-
context 'when try to get an API
|
|
137
|
+
context 'when try to get an API token with organization' do
|
|
138
138
|
before do
|
|
139
139
|
stub_api_token_with_organization
|
|
140
140
|
end
|
|
@@ -147,6 +147,7 @@ describe Auth0::Client do
|
|
|
147
147
|
organization: organization
|
|
148
148
|
)
|
|
149
149
|
end
|
|
150
|
+
|
|
150
151
|
it_should_behave_like 'v2 API client'
|
|
151
152
|
it_should_behave_like 'Authentication API client'
|
|
152
153
|
end
|
|
@@ -209,8 +210,7 @@ describe Auth0::Client do
|
|
|
209
210
|
{
|
|
210
211
|
grant_type: 'client_credentials',
|
|
211
212
|
client_id: client_id,
|
|
212
|
-
client_secret: client_secret
|
|
213
|
-
organization: organization
|
|
213
|
+
client_secret: client_secret
|
|
214
214
|
}
|
|
215
215
|
)
|
|
216
216
|
)
|
|
@@ -492,4 +492,108 @@ describe Auth0::Mixins::HTTPProxy do
|
|
|
492
492
|
end
|
|
493
493
|
end
|
|
494
494
|
end
|
|
495
|
+
|
|
496
|
+
context "Renewing tokens" do
|
|
497
|
+
before :each do
|
|
498
|
+
@token_instance = DummyClassForTokens.new(
|
|
499
|
+
client_id: 'test-client-id',
|
|
500
|
+
client_secret: 'test-client-secret',
|
|
501
|
+
domain: 'auth0.com')
|
|
502
|
+
end
|
|
503
|
+
|
|
504
|
+
%i(get delete).each do |http_method|
|
|
505
|
+
context "for #{http_method}" do
|
|
506
|
+
it 'should renew the token' do
|
|
507
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(
|
|
508
|
+
method: :post,
|
|
509
|
+
url: 'https://auth0.com/oauth/token',
|
|
510
|
+
) ).and_return(StubResponse.new({
|
|
511
|
+
"access_token" => "access_token",
|
|
512
|
+
"expires_in" => 86400},
|
|
513
|
+
true,
|
|
514
|
+
200))
|
|
515
|
+
|
|
516
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(
|
|
517
|
+
method: http_method,
|
|
518
|
+
url: 'https://auth0.com/test',
|
|
519
|
+
headers: { params: {}, "Authorization" => "Bearer access_token" }
|
|
520
|
+
)).and_return(StubResponse.new('Some random text here', true, 200))
|
|
521
|
+
|
|
522
|
+
expect { @token_instance.send(http_method, '/test') }.not_to raise_error
|
|
523
|
+
end
|
|
524
|
+
end
|
|
525
|
+
end
|
|
526
|
+
|
|
527
|
+
%i(post put patch).each do |http_method|
|
|
528
|
+
context "for #{http_method}" do
|
|
529
|
+
it 'should renew the token' do
|
|
530
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(
|
|
531
|
+
method: :post,
|
|
532
|
+
url: 'https://auth0.com/oauth/token',
|
|
533
|
+
) ).and_return(StubResponse.new({
|
|
534
|
+
"access_token" => "access_token",
|
|
535
|
+
"expires_in" => 86400},
|
|
536
|
+
true,
|
|
537
|
+
200))
|
|
538
|
+
|
|
539
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(
|
|
540
|
+
method: http_method,
|
|
541
|
+
url: 'https://auth0.com/test',
|
|
542
|
+
headers: { "Authorization" => "Bearer access_token" }
|
|
543
|
+
)).and_return(StubResponse.new('Some random text here', true, 200))
|
|
544
|
+
|
|
545
|
+
expect { @token_instance.send(http_method, '/test') }.not_to raise_error
|
|
546
|
+
end
|
|
547
|
+
end
|
|
548
|
+
end
|
|
549
|
+
end
|
|
550
|
+
|
|
551
|
+
context "Using cached tokens" do
|
|
552
|
+
before :each do
|
|
553
|
+
@token_instance = DummyClassForTokens.new(
|
|
554
|
+
client_id: 'test-client-id',
|
|
555
|
+
client_secret: 'test-client-secret',
|
|
556
|
+
domain: 'auth0.com',
|
|
557
|
+
token: 'access_token',
|
|
558
|
+
token_expires_at: Time.now.to_i + 86400)
|
|
559
|
+
end
|
|
560
|
+
|
|
561
|
+
%i(get delete).each do |http_method|
|
|
562
|
+
context "for #{http_method}" do
|
|
563
|
+
it 'should use the cached token' do
|
|
564
|
+
expect(RestClient::Request).not_to receive(:execute).with(hash_including(
|
|
565
|
+
method: :post,
|
|
566
|
+
url: 'https://auth0.com/oauth/token',
|
|
567
|
+
))
|
|
568
|
+
|
|
569
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(
|
|
570
|
+
method: http_method,
|
|
571
|
+
url: 'https://auth0.com/test',
|
|
572
|
+
headers: { params: {}, "Authorization" => "Bearer access_token" }
|
|
573
|
+
)).and_return(StubResponse.new('Some random text here', true, 200))
|
|
574
|
+
|
|
575
|
+
expect { @token_instance.send(http_method, '/test') }.not_to raise_error
|
|
576
|
+
end
|
|
577
|
+
end
|
|
578
|
+
end
|
|
579
|
+
|
|
580
|
+
%i(post put patch).each do |http_method|
|
|
581
|
+
context "for #{http_method}" do
|
|
582
|
+
it 'should use the cached token' do
|
|
583
|
+
expect(RestClient::Request).not_to receive(:execute).with(hash_including(
|
|
584
|
+
method: :post,
|
|
585
|
+
url: 'https://auth0.com/oauth/token',
|
|
586
|
+
))
|
|
587
|
+
|
|
588
|
+
expect(RestClient::Request).to receive(:execute).with(hash_including(
|
|
589
|
+
method: http_method,
|
|
590
|
+
url: 'https://auth0.com/test',
|
|
591
|
+
headers: { "Authorization" => "Bearer access_token" }
|
|
592
|
+
)).and_return(StubResponse.new('Some random text here', true, 200))
|
|
593
|
+
|
|
594
|
+
expect { @token_instance.send(http_method, '/test') }.not_to raise_error
|
|
595
|
+
end
|
|
596
|
+
end
|
|
597
|
+
end
|
|
598
|
+
end
|
|
495
599
|
end
|