From 12601e49fdef300fe8b083680a88841de6124a2f Mon Sep 17 00:00:00 2001 From: evazion Date: Tue, 4 Jan 2022 16:04:41 -0600 Subject: [PATCH] users: fix exception in `can_receive_email?`. --- app/models/user.rb | 2 +- test/unit/user_mailer_test.rb | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index a6594285f..e143abb2f 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -362,7 +362,7 @@ class User < ApplicationRecord module EmailMethods def can_receive_email?(require_verified_email: true) - email_address.present? && email_address.is_deliverable? && (email_address.is_verified? || !require_verification) + email_address.present? && email_address.is_deliverable? && (email_address.is_verified? || !require_verified_email) end def change_email(new_email, request) diff --git a/test/unit/user_mailer_test.rb b/test/unit/user_mailer_test.rb index 2a2612e3b..b01ae5564 100644 --- a/test/unit/user_mailer_test.rb +++ b/test/unit/user_mailer_test.rb @@ -27,6 +27,13 @@ class UserMailerTest < ActionMailer::TestCase mail = UserMailer.dmail_notice(@dmail) assert_emails(0) { mail.deliver_now } end + + should "not send an email for a user with an unverified address" do + @user = create(:user, email_address: build(:email_address, is_verified: 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