Merge branch 'fix-notification-filtering' into 'develop'
authorrinpatch <rinpatch@sdf.org>
Mon, 29 Jun 2020 18:06:25 +0000 (18:06 +0000)
committerrinpatch <rinpatch@sdf.org>
Mon, 29 Jun 2020 18:06:25 +0000 (18:06 +0000)
Notifications: Never return `nil` in the notification list.

See merge request pleroma/pleroma!2705

lib/pleroma/notification.ex
test/notification_test.exs

index 9ee9606becb9fd9bf779d81b6b72a01c5b4595ac..2ef1a80c5746a27013282f63cc91f39eb3724c2b 100644 (file)
@@ -367,6 +367,7 @@ defmodule Pleroma.Notification do
         do_send = do_send && user in enabled_receivers
         create_notification(activity, user, do_send)
       end)
+      |> Enum.reject(&is_nil/1)
 
     {:ok, notifications}
   end
index 526f43fab7a53f1313bd602e2f0f392a6c70820c..6add3f7eba39c9cc4287fcc2c62a6717e13981d6 100644 (file)
@@ -22,6 +22,16 @@ defmodule Pleroma.NotificationTest do
   alias Pleroma.Web.Streamer
 
   describe "create_notifications" do
+    test "never returns nil" do
+      user = insert(:user)
+      other_user = insert(:user, %{invisible: true})
+
+      {:ok, activity} = CommonAPI.post(user, %{status: "yeah"})
+      {:ok, activity} = CommonAPI.react_with_emoji(activity.id, other_user, "☕")
+
+      refute {:ok, [nil]} == Notification.create_notifications(activity)
+    end
+
     test "creates a notification for an emoji reaction" do
       user = insert(:user)
       other_user = insert(:user)