Pass user instead of their ap_id to User.block
[akkoma] / test / web / streamer_test.exs
1 defmodule Pleroma.Web.StreamerTest do
2 use Pleroma.DataCase
3
4 alias Pleroma.Web.Streamer
5 alias Pleroma.User
6 alias Pleroma.Web.CommonAPI
7 import Pleroma.Factory
8
9 test "it sends to public" do
10 user = insert(:user)
11 other_user = insert(:user)
12
13 task =
14 Task.async(fn ->
15 assert_receive {:text, _}, 4_000
16 end)
17
18 fake_socket = %{
19 transport_pid: task.pid,
20 assigns: %{
21 user: user
22 }
23 }
24
25 {:ok, activity} = CommonAPI.post(other_user, %{"status" => "Test"})
26
27 topics = %{
28 "public" => [fake_socket]
29 }
30
31 Streamer.push_to_socket(topics, "public", activity)
32
33 Task.await(task)
34 end
35
36 test "it doesn't send to blocked users" do
37 user = insert(:user)
38 blocked_user = insert(:user)
39 {:ok, user} = User.block(user, blocked_user)
40
41 task =
42 Task.async(fn ->
43 refute_receive {:text, _}, 1_000
44 end)
45
46 fake_socket = %{
47 transport_pid: task.pid,
48 assigns: %{
49 user: user
50 }
51 }
52
53 {:ok, activity} = CommonAPI.post(blocked_user, %{"status" => "Test"})
54
55 topics = %{
56 "public" => [fake_socket]
57 }
58
59 Streamer.push_to_socket(topics, "public", activity)
60
61 Task.await(task)
62 end
63 end