Commit 70947fedda4f955f69d928ad0309b3f042056582
1 parent
61824973
Exists in
master
and in
4 other branches
inslude author & assignee to note notification recipients
Showing
2 changed files
with
61 additions
and
28 deletions
Show diff stats
app/services/notification_service.rb
@@ -106,12 +106,14 @@ class NotificationService | @@ -106,12 +106,14 @@ class NotificationService | ||
106 | 106 | ||
107 | if note.commit_id | 107 | if note.commit_id |
108 | opts.merge!(commit_id: note.commit_id) | 108 | opts.merge!(commit_id: note.commit_id) |
109 | + recipients = [note.commit_author] | ||
109 | else | 110 | else |
110 | opts.merge!(noteable_id: note.noteable_id) | 111 | opts.merge!(noteable_id: note.noteable_id) |
112 | + recipients = [note.noteable.try(:author), note.noteable.try(:assignee)] | ||
111 | end | 113 | end |
112 | 114 | ||
113 | # Get users who left comment in thread | 115 | # Get users who left comment in thread |
114 | - recipients = User.where(id: Note.where(opts).pluck(:author_id)) | 116 | + recipients = recipients.concat(User.where(id: Note.where(opts).pluck(:author_id))) |
115 | 117 | ||
116 | # Merge project watchers | 118 | # Merge project watchers |
117 | recipients = recipients.concat(project_watchers(note.project)).compact.uniq | 119 | recipients = recipients.concat(project_watchers(note.project)).compact.uniq |
spec/services/notification_service_spec.rb
@@ -21,40 +21,71 @@ describe NotificationService do | @@ -21,40 +21,71 @@ describe NotificationService do | ||
21 | end | 21 | end |
22 | 22 | ||
23 | describe 'Notes' do | 23 | describe 'Notes' do |
24 | - let(:note) { create :note_on_commit } | 24 | + context 'issue note' do |
25 | + let(:issue) { create(:issue, assignee: create(:user)) } | ||
26 | + let(:note) { create(:note_on_issue, noteable: issue, project_id: issue.project_id) } | ||
25 | 27 | ||
26 | - before do | ||
27 | - build_team(note.project) | ||
28 | - end | ||
29 | - | ||
30 | - describe :new_note do | ||
31 | - it do | ||
32 | - should_email(@u_watcher.id) | ||
33 | - should_not_email(note.author_id) | ||
34 | - should_not_email(@u_participating.id) | ||
35 | - should_not_email(@u_disabled.id) | ||
36 | - notification.new_note(note) | 28 | + before do |
29 | + build_team(note.project) | ||
37 | end | 30 | end |
38 | 31 | ||
39 | - it do | ||
40 | - create(:note_on_commit, | ||
41 | - author: @u_participating, | ||
42 | - project_id: note.project_id, | ||
43 | - commit_id: note.commit_id) | 32 | + describe :new_note do |
33 | + it do | ||
34 | + should_email(@u_watcher.id) | ||
35 | + should_email(note.noteable.author_id) | ||
36 | + should_email(note.noteable.assignee_id) | ||
37 | + should_not_email(note.author_id) | ||
38 | + should_not_email(@u_participating.id) | ||
39 | + should_not_email(@u_disabled.id) | ||
40 | + notification.new_note(note) | ||
41 | + end | ||
44 | 42 | ||
45 | - should_email(@u_watcher.id) | ||
46 | - should_email(@u_participating.id) | ||
47 | - should_not_email(note.author_id) | ||
48 | - should_not_email(@u_disabled.id) | ||
49 | - notification.new_note(note) | ||
50 | - end | 43 | + def should_email(user_id) |
44 | + Notify.should_receive(:note_issue_email).with(user_id, note.id) | ||
45 | + end | ||
51 | 46 | ||
52 | - def should_email(user_id) | ||
53 | - Notify.should_receive(:note_commit_email).with(user_id, note.id) | 47 | + def should_not_email(user_id) |
48 | + Notify.should_not_receive(:note_issue_email).with(user_id, note.id) | ||
49 | + end | ||
54 | end | 50 | end |
51 | + end | ||
55 | 52 | ||
56 | - def should_not_email(user_id) | ||
57 | - Notify.should_not_receive(:note_commit_email).with(user_id, note.id) | 53 | + context 'commit note' do |
54 | + let(:note) { create :note_on_commit } | ||
55 | + | ||
56 | + before do | ||
57 | + build_team(note.project) | ||
58 | + end | ||
59 | + | ||
60 | + describe :new_note do | ||
61 | + it do | ||
62 | + should_email(@u_watcher.id) | ||
63 | + should_not_email(note.author_id) | ||
64 | + should_not_email(@u_participating.id) | ||
65 | + should_not_email(@u_disabled.id) | ||
66 | + notification.new_note(note) | ||
67 | + end | ||
68 | + | ||
69 | + it do | ||
70 | + create(:note_on_commit, | ||
71 | + author: @u_participating, | ||
72 | + project_id: note.project_id, | ||
73 | + commit_id: note.commit_id) | ||
74 | + | ||
75 | + should_email(@u_watcher.id) | ||
76 | + should_email(@u_participating.id) | ||
77 | + should_not_email(note.author_id) | ||
78 | + should_not_email(@u_disabled.id) | ||
79 | + notification.new_note(note) | ||
80 | + end | ||
81 | + | ||
82 | + def should_email(user_id) | ||
83 | + Notify.should_receive(:note_commit_email).with(user_id, note.id) | ||
84 | + end | ||
85 | + | ||
86 | + def should_not_email(user_id) | ||
87 | + Notify.should_not_receive(:note_commit_email).with(user_id, note.id) | ||
88 | + end | ||
58 | end | 89 | end |
59 | end | 90 | end |
60 | end | 91 | end |