Add check for bounce presence in #failed? method of verification

This commit is contained in:
Alex Sherman 2021-04-09 13:19:11 +05:00
parent 9f54b1e8a9
commit e843b7293b
2 changed files with 14 additions and 1 deletions

View file

@ -34,13 +34,17 @@ class EmailAddressVerification < ApplicationRecord
end
def failed?
verified_at.present? && !success
bounce_present? || (verified_at.present? && !success)
end
def verified?
success
end
def bounce_present?
BouncedMailAddress.find_by(email: email).present?
end
def check_force_delete
return unless failed?

View file

@ -117,6 +117,15 @@ class BouncedMailAddressTest < ActiveSupport::TestCase
assert_equal 'smtp; 550 5.1.1 user unknown', bounced_mail.diagnostic
end
def test_email_with_bounce_considered_nonverified
BouncedMailAddress.record(sns_bounce_payload)
bounced_mail = BouncedMailAddress.last
registrant = domains(:shop).registrant
assert_equal registrant.email, bounced_mail.email
assert registrant.email_verification.failed?
end
def sns_bounce_payload
{
"notificationType": "Bounce",