Test that end of poll notifications are streamed over websockets

This commit is contained in:
Mark Felder 2024-06-08 13:08:06 -04:00
parent c24e222887
commit a5424c3681

View file

@ -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)
assert [user2.id, user3.id, user1.id] == Enum.map(notifications, & &1.user_id)
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)
end
end
describe "create_notification" do