From 9611df92b0f0f1a86cddd05069dd9211144d2941 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Mon, 8 Feb 2021 15:35:46 +0500 Subject: [PATCH] Add system test & fix locale --- .../registrar/admin_contacts_controller.rb | 1 - config/locales/registrar/admin_contacts.yml | 11 +++++ .../bulk_change/admin_contact_test.rb | 49 +++++++++++++++++++ 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 config/locales/registrar/admin_contacts.yml create mode 100644 test/system/registrar_area/bulk_change/admin_contact_test.rb diff --git a/app/controllers/registrar/admin_contacts_controller.rb b/app/controllers/registrar/admin_contacts_controller.rb index 55cfbae9e..a1400b6dc 100644 --- a/app/controllers/registrar/admin_contacts_controller.rb +++ b/app/controllers/registrar/admin_contacts_controller.rb @@ -5,7 +5,6 @@ class Registrar def update authorize! :manage, :repp - uri = BASE_URL request = form_request(uri) response = do_request(request, uri) diff --git a/config/locales/registrar/admin_contacts.yml b/config/locales/registrar/admin_contacts.yml new file mode 100644 index 000000000..d258b4275 --- /dev/null +++ b/config/locales/registrar/admin_contacts.yml @@ -0,0 +1,11 @@ +en: + registrar: + admin_contacts: + update: + replaced: Admin contacts have been successfully replaced. + affected_domains: Affected domains + skipped_domains: Skipped domains + process_request: + affected_domains: Affected domains + skipped_domains: Skipped domains + replaced: Admin contacts have been successfully replaced. diff --git a/test/system/registrar_area/bulk_change/admin_contact_test.rb b/test/system/registrar_area/bulk_change/admin_contact_test.rb new file mode 100644 index 000000000..8847812cb --- /dev/null +++ b/test/system/registrar_area/bulk_change/admin_contact_test.rb @@ -0,0 +1,49 @@ +require 'application_system_test_case' + +class RegistrarAreaAdminContactBulkChangeTest < ApplicationSystemTestCase + setup do + sign_in users(:api_bestnames) + end + + def test_replace_domain_contacts_of_current_registrar + request_stub = stub_request(:patch, /domains\/admin_contacts/) + .with(body: { current_contact_id: 'william-001', new_contact_id: 'john-001' }, + basic_auth: ['test_bestnames', 'testtest']) + .to_return(body: { data: { affected_domains: %w[foo.test bar.test], + skipped_domains: %w[baz.test qux.test] } }.to_json, + status: 200) + + visit registrar_domains_url + click_link 'Bulk change' + click_link 'Admin contact' + + find('.current_admin_contact').fill_in 'Current contact ID', with: 'william-001' + find('.new_admin_contact').fill_in 'New contact ID', with: 'john-001' + click_on 'Replace admin contacts' + + assert_requested request_stub + assert_current_path registrar_domains_path + assert_text 'Admin contacts have been successfully replaced' + assert_text 'Affected domains: foo.test, bar.test' + assert_text 'Skipped domains: baz.test, qux.test' + end + + def test_fails_gracefully + stub_request(:patch, /domains\/admin_contacts/) + .to_return(status: 400, + body: { message: 'epic fail' }.to_json, + headers: { 'Content-type' => Mime[:json] }) + + visit registrar_domains_url + click_link 'Bulk change' + click_link 'Admin contact' + + find('.current_admin_contact').fill_in 'Current contact ID', with: 'william-001' + find('.new_admin_contact').fill_in 'New contact ID', with: 'john-001' + click_on 'Replace admin contacts' + + assert_text 'epic fail' + assert_field 'Current contact ID', with: 'william-001' + assert_field 'New contact ID', with: 'john-001' + end +end