require "test_helper" class DomainDeleteConfirmJobTest < ActiveSupport::TestCase setup do @legal_doc_path = 'test/fixtures/files/legaldoc.pdf' @domain = domains(:shop) @new_registrant = contacts(:william) @user = users(:api_bestnames) end def teardown super end def test_rejected_registrant_verification_notifies_registrar @domain.update!(pending_json: { new_registrant_id: @new_registrant.id, new_registrant_name: @new_registrant.name, new_registrant_email: @new_registrant.email, current_user_id: @user.id }) DomainDeleteConfirmJob.perform_now(@domain.id, RegistrantVerification::REJECTED) last_registrar_notification = @domain.registrar.notifications.last assert_equal(last_registrar_notification.attached_obj_id, @domain.id) assert_equal(last_registrar_notification.text, 'Registrant rejected domain deletion: shop.test') end def test_accepted_registrant_verification_notifies_registrar @domain.update!(pending_json: { new_registrant_id: @new_registrant.id, new_registrant_name: @new_registrant.name, new_registrant_email: @new_registrant.email, current_user_id: @user.id }) DomainDeleteConfirmJob.perform_now(@domain.id, RegistrantVerification::CONFIRMED) last_registrar_notification = @domain.registrar.notifications.last assert_equal(last_registrar_notification.attached_obj_id, @domain.id) assert_equal(last_registrar_notification.text, 'Registrant confirmed domain deletion: shop.test') end def test_marks_domain_as_pending_delete_after_acceptance epp_xml = "\n\n \n \n" \ " \n #{@domain.name}\n \n \n \n" \ " \n #{@legal_doc_path}\n" \ " \n \n 20alla-1594212240\n \n\n" @domain.registrant_verification_asked!(epp_xml, @user.id) @domain.pending_delete! @domain.reload assert @domain.registrant_delete_confirmable?(@domain.registrant_verification_token) assert_equal @user.id, @domain.pending_json['current_user_id'] DomainDeleteConfirmJob.perform_now(@domain.id, RegistrantVerification::CONFIRMED) @domain.reload assert @domain.statuses.include? DomainStatus::PENDING_DELETE assert @domain.statuses.include? DomainStatus::SERVER_HOLD assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE_CONFIRMATION end def test_clears_pending_flags_after_delete_denial epp_xml = "\n\n \n \n" \ " \n #{@domain.name}\n \n \n \n" \ " \n #{@legal_doc_path}\n" \ " \n \n 20alla-1594212240\n \n\n" @domain.registrant_verification_asked!(epp_xml, @user.id) @domain.pending_delete! @domain.reload assert @domain.registrant_delete_confirmable?(@domain.registrant_verification_token) assert_equal @user.id, @domain.pending_json['current_user_id'] DomainDeleteConfirmJob.perform_now(@domain.id, RegistrantVerification::REJECTED) @domain.reload assert_equal ['ok'], @domain.statuses assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE_CONFIRMATION assert_not @domain.statuses.include? DomainStatus::PENDING_DELETE end end