emails: fix sending emails to invalid addresses.
Fix mailers to not attempt deliveries to invalid or nonexistent email addresses. This usually happened when someone changed their email, and we tried to send a confirmation email to a nonexistent address.
This commit is contained in:
@@ -259,7 +259,7 @@ class UsersControllerTest < ActionDispatch::IntegrationTest
|
||||
assert_equal(User::Levels::MEMBER, User.last.level)
|
||||
assert_equal(User.last, User.last.authenticate_password("xxxxx1"))
|
||||
assert_nil(User.last.email_address)
|
||||
assert_no_enqueued_emails
|
||||
assert_enqueued_email_with UserMailer, :welcome_user, args: [User.last], queue: "default"
|
||||
assert_equal(true, User.last.user_events.user_creation.exists?)
|
||||
end
|
||||
|
||||
|
||||
@@ -12,6 +12,20 @@ class UserMailerTest < ActionMailer::TestCase
|
||||
mail = UserMailer.dmail_notice(@dmail)
|
||||
assert_emails(1) { mail.deliver_now }
|
||||
end
|
||||
|
||||
should "not send an email for a user without an email address" do
|
||||
@user = create(:user)
|
||||
@dmail = create(:dmail, owner: @user, to: @user)
|
||||
mail = UserMailer.dmail_notice(@dmail)
|
||||
assert_emails(0) { mail.deliver_now }
|
||||
end
|
||||
|
||||
should "not send an email for a user with an undeliverable address" do
|
||||
@user = create(:user, email_address: build(:email_address, is_deliverable: false))
|
||||
@dmail = create(:dmail, owner: @user, to: @user)
|
||||
mail = UserMailer.dmail_notice(@dmail)
|
||||
assert_emails(0) { mail.deliver_now }
|
||||
end
|
||||
end
|
||||
|
||||
context "password_reset method" do
|
||||
|
||||
Reference in New Issue
Block a user