summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-03-24 18:52:41 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-03-24 18:52:41 +0000
commit3d8ecbc94fd7ca0583b8a14f6ddd9be92be40c41 (patch)
treedf82928464c09ffd656b08afe70c7e26a8a9fc23 /spec
parent55be026e59e71073400a334cf746613f88c1d206 (diff)
parent5818cf063bda5f6a96ccefe086b64a3699dd2c67 (diff)
downloadgitlab-ce-3d8ecbc94fd7ca0583b8a14f6ddd9be92be40c41.tar.gz
Merge branch 'no-emails-for-mentions' into 'master'
Don't send an email for "mentioned in" notes Currently, an email is sent every time a mentionable is referenced by an issue, a commit or a merge request: if I comment "This MR is related to #5", the watchers get one email for the comment, and another one stating "Issue #5 was mentioned by issue #13". This is annoying — but the biggest issue is when pushing an existing branch. Every issue referenced by commit messages in this branch will get a new mention (which is fine), and dozens of emails will be sent for all these new mentions (which is not). This commit fixes the spam by avoiding to send an email when a new mention is added to an existing mentionable. In most cases the email notification sent by the mentioner is enough.
Diffstat (limited to 'spec')
-rw-r--r--spec/services/notification_service_spec.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/spec/services/notification_service_spec.rb b/spec/services/notification_service_spec.rb
index 077ad8b6e12..58cf45819ab 100644
--- a/spec/services/notification_service_spec.rb
+++ b/spec/services/notification_service_spec.rb
@@ -32,6 +32,7 @@ describe NotificationService do
describe 'Notes' do
context 'issue note' do
let(:issue) { create(:issue, assignee: create(:user)) }
+ let(:mentioned_issue) { create(:issue, assignee: issue.assignee) }
let(:note) { create(:note_on_issue, noteable: issue, project_id: issue.project_id, note: '@mention referenced') }
before do
@@ -50,6 +51,13 @@ describe NotificationService do
notification.new_note(note)
end
+ it 'filters out "mentioned in" notes' do
+ mentioned_note = Note.create_cross_reference_note(mentioned_issue, issue, issue.author, issue.project)
+
+ Notify.should_not_receive(:note_issue_email)
+ notification.new_note(mentioned_note)
+ end
+
def should_email(user_id)
Notify.should_receive(:note_issue_email).with(user_id, note.id)
end