FIX: if approving a user when must_approve_users is false, don't send an email

This commit is contained in:
Neil Lalonde 2015-05-04 15:30:25 -04:00
parent b84c4ef0c6
commit 963ebf5963
2 changed files with 15 additions and 6 deletions

View File

@ -850,11 +850,13 @@ class User < ActiveRecord::Base
end end
def send_approval_email def send_approval_email
Jobs.enqueue(:user_email, if SiteSetting.must_approve_users
type: :signup_after_approval, Jobs.enqueue(:user_email,
user_id: id, type: :signup_after_approval,
email_token: email_tokens.first.token user_id: id,
) email_token: email_tokens.first.token
)
end
end end
def set_default_email_digest def set_default_email_digest

View File

@ -45,13 +45,20 @@ describe User do
let(:user) { Fabricate(:user) } let(:user) { Fabricate(:user) }
let(:admin) { Fabricate(:admin) } let(:admin) { Fabricate(:admin) }
it "enqueues a 'signup after approval' email" do it "enqueues a 'signup after approval' email if must_approve_users is true" do
SiteSetting.stubs(:must_approve_users).returns(true)
Jobs.expects(:enqueue).with( Jobs.expects(:enqueue).with(
:user_email, has_entries(type: :signup_after_approval) :user_email, has_entries(type: :signup_after_approval)
) )
user.approve(admin) user.approve(admin)
end end
it "doesn't enqueue a 'signup after approval' email if must_approve_users is false" do
SiteSetting.stubs(:must_approve_users).returns(false)
Jobs.expects(:enqueue).never
user.approve(admin)
end
context 'after approval' do context 'after approval' do
before do before do
user.approve(admin) user.approve(admin)