Merge pull request #1914 from internetee/1837-invalidate-emails-with-bounces

Add check for bounce presence in #failed? method of verification
This commit is contained in:
Timo Võhmar 2021-04-13 17:53:25 +03:00 committed by GitHub
commit fb1045a97e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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",