summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2020-06-29 17:48:18 +0200
committerlain <lain@soykaf.club>2020-06-29 17:48:18 +0200
commit90083a754dc0bfe0c8a04fbaa3e78f68a848035e (patch)
tree22039e64370a60fe7e367ee2e292d46f9af2cf3d
parentdc31fbfe6ce0c43d2ae0ce32f3101950f0d24813 (diff)
downloadpleroma-90083a754dc0bfe0c8a04fbaa3e78f68a848035e.tar.gz
pleroma-90083a754dc0bfe0c8a04fbaa3e78f68a848035e.zip
Notifications: Never return `nil` in the notification list.
-rw-r--r--lib/pleroma/notification.ex1
-rw-r--r--test/notification_test.exs12
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex
index 9ee9606be..58dcf880a 100644
--- a/lib/pleroma/notification.ex
+++ b/lib/pleroma/notification.ex
@@ -367,6 +367,7 @@ defmodule Pleroma.Notification do
do_send = do_send && user in enabled_receivers
create_notification(activity, user, do_send)
end)
+ |> Enum.filter(& &1)
{:ok, notifications}
end
diff --git a/test/notification_test.exs b/test/notification_test.exs
index 526f43fab..5389dabca 100644
--- a/test/notification_test.exs
+++ b/test/notification_test.exs
@@ -21,7 +21,19 @@ defmodule Pleroma.NotificationTest do
alias Pleroma.Web.Push
alias Pleroma.Web.Streamer
+ # TODO: Test there's no nil notifications
+
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)