OSDN Git Service

Fix notifications to handle participants and mentions on commits too
authorJavier Castro <javiercastro@nexion.com.ar>
Mon, 22 Jul 2013 18:45:56 +0000 (15:45 -0300)
committerJavier Castro <javiercastro@nexion.com.ar>
Wed, 24 Jul 2013 20:04:51 +0000 (17:04 -0300)
app/services/notification_service.rb
spec/services/notification_service_spec.rb

index f3dc552..819b76c 100644 (file)
@@ -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
index 7650148..8ebad41 100644 (file)
@@ -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)