FIX: Liked notifications should not be consolidated across multiple users.

FIX: Liked notifications should not be consolidated across multiple users.

diff --git a/app/services/post_action_notifier.rb b/app/services/post_action_notifier.rb
index 39dd205..698af27 100644
--- a/app/services/post_action_notifier.rb
+++ b/app/services/post_action_notifier.rb
@@ -89,9 +89,14 @@ class PostActionNotifier
     user_liked_consolidated_notification =
       user_notifications
         .where(
-          "created_at > ? AND notification_type = ?",
+          "
+            created_at > ? AND
+            notification_type = ? AND
+            data::json ->> 'display_username' = ?
+          ",
           consolidation_window,
-          Notification.types[:liked_consolidated]
+          Notification.types[:liked_consolidated],
+          post_action.user.username_lower
         )
         .first
 
diff --git a/spec/models/post_action_spec.rb b/spec/models/post_action_spec.rb
index b415c3e..de18c46 100644
--- a/spec/models/post_action_spec.rb
+++ b/spec/models/post_action_spec.rb
@@ -346,6 +346,21 @@ describe PostAction do
         expect(notification.read).to eq(false)
         expect(data["count"]).to eq(6)
 
+        # Like from a different user shouldn't be consolidated
+        expect do
+          PostAction.act(
+            Fabricate(:user),
+            Fabricate(:post, user: likee),
+            PostActionType.types[:like]
+          )
+        end.to change { likee.reload.notifications.count }.by(1)
+
+        notification = likee.notifications.last
+
+        expect(notification.notification_type).to eq(
+          Notification.types[:liked]
+        )
+
         freeze_time(
           SiteSetting.likes_notification_consolidation_window_mins.minutes.since
         )

GitHub sha: 27e2b657

1 Like