Commit cb877b7e6f6b036a2811aec7313dab94473774de

Authored by Javier Castro
1 parent 707cea8d

Fix notifications to handle participants and mentions on commits too

app/services/notification_service.rb
... ... @@ -106,15 +106,15 @@ class NotificationService
106 106  
107 107 if note.commit_id.present?
108 108 opts.merge!(commit_id: note.commit_id)
109   - recipients = [note.commit_author]
110 109 else
111 110 opts.merge!(noteable_id: note.noteable_id)
112   - target = note.noteable
113   - if target.respond_to?(:participants)
114   - recipients = target.participants
115   - else
116   - recipients = []
117   - end
  111 + end
  112 +
  113 + target = note.noteable
  114 + if target.respond_to?(:participants)
  115 + recipients = target.participants
  116 + else
  117 + recipients = note.mentioned_users
118 118 end
119 119  
120 120 # Get users who left comment in thread
... ...
spec/services/notification_service_spec.rb
... ... @@ -48,7 +48,7 @@ describe NotificationService do
48 48 end
49 49  
50 50 context 'commit note' do
51   - let(:note) { create :note_on_commit }
  51 + let(:note) { create(:note_on_commit, note: '@mention referenced') }
52 52  
53 53 before do
54 54 build_team(note.project)
... ... @@ -57,6 +57,7 @@ describe NotificationService do
57 57 describe :new_note do
58 58 it do
59 59 should_email(@u_watcher.id)
  60 + should_email(@u_mentioned.id)
60 61 should_not_email(note.author_id)
61 62 should_not_email(@u_participating.id)
62 63 should_not_email(@u_disabled.id)
... ... @@ -67,10 +68,12 @@ describe NotificationService do
67 68 create(:note_on_commit,
68 69 author: @u_participating,
69 70 project_id: note.project_id,
70   - commit_id: note.commit_id)
  71 + commit_id: note.commit_id,
  72 + note: '@mention referenced')
71 73  
72 74 should_email(@u_watcher.id)
73 75 should_email(@u_participating.id)
  76 + should_email(@u_mentioned.id)
74 77 should_not_email(note.author_id)
75 78 should_not_email(@u_disabled.id)
76 79 notification.new_note(note)
... ...