FIX: Do not assign the same user more than once
This prevents resending assignment notification emails.
This commit is contained in:
parent
b20b4c088d
commit
a308e2a445
|
@ -131,6 +131,8 @@ SQL
|
|||
end
|
||||
|
||||
def assign(assign_to, silent: false)
|
||||
return false if @topic.custom_fields[ASSIGNED_TO_ID] == assign_to.id.to_s
|
||||
|
||||
@topic.custom_fields[ASSIGNED_TO_ID] = assign_to.id
|
||||
@topic.custom_fields[ASSIGNED_BY_ID] = @assigned_by.id
|
||||
@topic.save_custom_fields
|
||||
|
|
|
@ -114,6 +114,19 @@ RSpec.describe TopicAssigner do
|
|||
.to eq(moderator.id)
|
||||
end
|
||||
end
|
||||
|
||||
it "doesn't assign the same user more than once" do
|
||||
SiteSetting.assign_mailer_enabled = true
|
||||
|
||||
Email::Sender.any_instance.expects(:send).once
|
||||
expect(assigner.assign(moderator)).to eq(true)
|
||||
|
||||
Email::Sender.any_instance.expects(:send).never
|
||||
expect(assigner.assign(moderator)).to eq(false)
|
||||
|
||||
Email::Sender.any_instance.expects(:send).once
|
||||
expect(assigner.assign(Fabricate(:moderator))).to eq(true)
|
||||
end
|
||||
end
|
||||
|
||||
context "unassign_on_close" do
|
||||
|
|
Loading…
Reference in New Issue