diff --git a/test/models/domain/force_delete_test.rb b/test/models/domain/force_delete_test.rb index 19338f495..e4ad085e6 100644 --- a/test/models/domain/force_delete_test.rb +++ b/test/models/domain/force_delete_test.rb @@ -5,6 +5,11 @@ class ForceDeleteTest < ActionMailer::TestCase @domain = domains(:shop) Setting.redemption_grace_period = 30 ActionMailer::Base.deliveries.clear + @old_validation_type = Truemail.configure.default_validation_type + end + + teardown do + Truemail.configure.default_validation_type = @old_validation_type end def test_schedules_force_delete_fast_track @@ -315,4 +320,52 @@ class ForceDeleteTest < ActionMailer::TestCase assert @domain.force_delete_scheduled? assert @domain.registrant_update_confirmable?(@domain.registrant_verification_token) end + + def test_schedules_force_delete_after_bounce + @domain.update(valid_to: Time.zone.parse('2012-08-05')) + assert_not @domain.force_delete_scheduled? + travel_to Time.zone.parse('2010-07-05') + + prepare_bounced_email_address(@domain.admin_contacts.first.email) + + @domain.reload + + assert @domain.force_delete_scheduled? + assert_equal 'invalid_email', @domain.template_name + assert_equal Date.parse('2010-09-19'), @domain.force_delete_date.to_date + assert_equal Date.parse('2010-08-05'), @domain.force_delete_start.to_date + end + + def test_schedules_force_delete_invalid_contact + @domain.update(valid_to: Time.zone.parse('2012-08-05')) + assert_not @domain.force_delete_scheduled? + travel_to Time.zone.parse('2010-07-05') + + Truemail.configure.default_validation_type = :regex + + contact = @domain.admin_contacts.first + contact.update(email: 'some@strangesentence@internet.ee') + + assert contact.email_verification_failed? + assert contact.invalid? + + @domain.reload + + assert @domain.force_delete_scheduled? + assert_equal 'invalid_email', @domain.template_name + assert_equal Date.parse('2010-09-19'), @domain.force_delete_date.to_date + assert_equal Date.parse('2010-08-05'), @domain.force_delete_start.to_date + end + + def prepare_bounced_email_address(email) + @bounced_mail = BouncedMailAddress.new + @bounced_mail.email = email + @bounced_mail.message_id = '010f0174a0c7d348-ea6e2fc1-0854-4073-b71f-5cecf9b0d0b2-000000' + @bounced_mail.bounce_type = 'Permanent' + @bounced_mail.bounce_subtype = 'General' + @bounced_mail.action = 'failed' + @bounced_mail.status = '5.1.1' + @bounced_mail.diagnostic = 'smtp; 550 5.1.1 user unknown' + @bounced_mail.save! + end end