From: Javier Castro Date: Mon, 22 Jul 2013 18:45:56 +0000 (-0300) Subject: Fix notifications to handle participants and mentions on commits too X-Git-Tag: v6.0.0~126^2~1 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=cb877b7e6f6b036a2811aec7313dab94473774de;p=wvm%2Fgitlab.git Fix notifications to handle participants and mentions on commits too --- diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb index f3dc552a8..819b76c27 100644 --- a/app/services/notification_service.rb +++ b/app/services/notification_service.rb @@ -106,15 +106,15 @@ class NotificationService if note.commit_id.present? opts.merge!(commit_id: note.commit_id) - recipients = [note.commit_author] else opts.merge!(noteable_id: note.noteable_id) - target = note.noteable - if target.respond_to?(:participants) - recipients = target.participants - else - recipients = [] - end + end + + target = note.noteable + if target.respond_to?(:participants) + recipients = target.participants + else + recipients = note.mentioned_users end # Get users who left comment in thread diff --git a/spec/services/notification_service_spec.rb b/spec/services/notification_service_spec.rb index 765014823..8ebad41b4 100644 --- a/spec/services/notification_service_spec.rb +++ b/spec/services/notification_service_spec.rb @@ -48,7 +48,7 @@ describe NotificationService do end context 'commit note' do - let(:note) { create :note_on_commit } + let(:note) { create(:note_on_commit, note: '@mention referenced') } before do build_team(note.project) @@ -57,6 +57,7 @@ describe NotificationService do describe :new_note do it do should_email(@u_watcher.id) + should_email(@u_mentioned.id) should_not_email(note.author_id) should_not_email(@u_participating.id) should_not_email(@u_disabled.id) @@ -67,10 +68,12 @@ describe NotificationService do create(:note_on_commit, author: @u_participating, project_id: note.project_id, - commit_id: note.commit_id) + commit_id: note.commit_id, + note: '@mention referenced') should_email(@u_watcher.id) should_email(@u_participating.id) + should_email(@u_mentioned.id) should_not_email(note.author_id) should_not_email(@u_disabled.id) notification.new_note(note)