Files
danbooru/test/unit/user_mailer_test.rb
evazion 32613f9bb1 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.
2022-01-02 16:07:57 -06:00

53 lines
1.5 KiB
Ruby

require "test_helper"
class UserMailerTest < ActionMailer::TestCase
context "UserMailer" do
setup do
@user = create(:user, email_address: build(:email_address))
end
context "dmail_notice method" do
should "work" do
@dmail = create(:dmail, owner: @user, to: @user)
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
should "work" do
mail = UserMailer.password_reset(@user)
assert_emails(1) { mail.deliver_now }
end
end
context "email_change_confirmation method" do
should "work" do
mail = UserMailer.email_change_confirmation(@user)
assert_emails(1) { mail.deliver_now }
end
end
context "welcome_user method" do
should "work" do
mail = UserMailer.welcome_user(@user)
assert_emails(1) { mail.deliver_now }
end
end
end
end