commit: a5424c3681a537e08fa1333ee9749ab22fd3ece0
parent c24e222887808ea7e2080ad54dea340212a5e9df
Author: Mark Felder <feld@feld.me>
Date: Sat, 8 Jun 2024 13:08:06 -0400
Test that end of poll notifications are streamed over websockets
Diffstat:
1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/test/pleroma/notification_test.exs b/test/pleroma/notification_test.exs
@@ -5,6 +5,7 @@
defmodule Pleroma.NotificationTest do
use Pleroma.DataCase, async: false
+ import Mock
import Pleroma.Factory
alias Pleroma.FollowingRelationship
@@ -183,9 +184,31 @@ defmodule Pleroma.NotificationTest do
{:ok, _, _} = CommonAPI.vote(user2, question, [0])
{:ok, _, _} = CommonAPI.vote(user3, question, [1])
- {:ok, notifications} = Notification.create_poll_notifications(activity)
+ with_mocks([
+ {
+ Pleroma.Web.Streamer,
+ [],
+ [
+ stream: fn _, _ -> nil end
+ ]
+ },
+ {
+ Pleroma.Web.Push,
+ [],
+ [
+ send: fn _ -> nil end
+ ]
+ }
+ ]) do
+ {:ok, notifications} = Notification.create_poll_notifications(activity)
+
+ Enum.each(notifications, fn notification ->
+ assert called(Pleroma.Web.Streamer.stream(["user", "user:notification"], notification))
+ assert called(Pleroma.Web.Push.send(notification))
+ end)
- assert [user2.id, user3.id, user1.id] == Enum.map(notifications, & &1.user_id)
+ assert [user2.id, user3.id, user1.id] == Enum.map(notifications, & &1.user_id)
+ end
end
describe "create_notification" do