diff --git a/app/models/concerns/domain/force_delete.rb b/app/models/concerns/domain/force_delete.rb index 729a7515b..670e5db67 100644 --- a/app/models/concerns/domain/force_delete.rb +++ b/app/models/concerns/domain/force_delete.rb @@ -22,7 +22,7 @@ module Concerns::Domain::ForceDelete # rubocop:disable Metrics/ModuleLength def notification_template if contact_emails_verification_failed.present? 'invalid_email' - elsif registrant.org? + elsif registrant.org? 'legal_person' else 'private_person' diff --git a/app/models/concerns/email_verifable.rb b/app/models/concerns/email_verifable.rb index 2168a0754..d0bb6aecb 100644 --- a/app/models/concerns/email_verifable.rb +++ b/app/models/concerns/email_verifable.rb @@ -16,7 +16,7 @@ module Concerns end def email_verification_failed? - email_verification.failed? + email_verification&.failed? end class_methods do diff --git a/test/mailers/previews/domain_delete_mailer_preview.rb b/test/mailers/previews/domain_delete_mailer_preview.rb index 916b0af0e..9dd7ae7b2 100644 --- a/test/mailers/previews/domain_delete_mailer_preview.rb +++ b/test/mailers/previews/domain_delete_mailer_preview.rb @@ -1,6 +1,6 @@ class DomainDeleteMailerPreview < ActionMailer::Preview def self.define_forced_templates - DomainDeleteMailer.force_delete_templates.each do |template_name| + %w[private_person legal_person invalid_email].each do |template_name| define_method "forced_#{template_name}".to_sym do DomainDeleteMailer.forced(domain: @domain, registrar: @domain.registrar, @@ -34,4 +34,4 @@ class DomainDeleteMailerPreview < ActionMailer::Preview def expired DomainDeleteMailer.expired(@domain) end -end \ No newline at end of file +end diff --git a/test/system/admin_area/domains/force_delete_test.rb b/test/system/admin_area/domains/force_delete_test.rb index 6aa53be6c..e17695fcc 100644 --- a/test/system/admin_area/domains/force_delete_test.rb +++ b/test/system/admin_area/domains/force_delete_test.rb @@ -44,7 +44,7 @@ class AdminAreaDomainForceDeleteTest < ApplicationSystemTestCase end @domain.reload - assert_equal template_name, @domain.template_name + assert_equal @domain.notification_template, @domain.template_name end def test_uses_legal_template_if_registrant_org @@ -57,7 +57,23 @@ class AdminAreaDomainForceDeleteTest < ApplicationSystemTestCase end @domain.reload - assert_equal template_name, @domain.template_name + assert_equal @domain.notification_template, @domain.template_name + end + + def test_uses_legal_template_if_invalid_email + verification = @domain.contacts.first.email_verification + verification.update(verified_at: Time.zone.now - 1.day, success: false) + + assert_equal @domain.notification_template, 'invalid_email' + + assert_emails 0 do + visit edit_admin_domain_url(@domain) + find(:css, '#soft_delete').set(true) + click_link_or_button 'Force delete domain' + end + + @domain.reload + assert_equal @domain.notification_template, @domain.template_name end def test_allows_to_skip_notifying_registrant_and_admin_contacts_by_email @@ -87,10 +103,4 @@ class AdminAreaDomainForceDeleteTest < ApplicationSystemTestCase assert_no_button 'Schedule force delete' assert_no_link 'Schedule force delete' end - - private - - def template_name - @domain.registrant.org? ? 'legal_person' : 'private_person' - end end