diff options
author | lain <lain@soykaf.club> | 2018-05-13 10:56:11 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2018-05-13 10:56:11 +0200 |
commit | 76722ea9c8dfbb8fefe247883946aa5c872d9a49 (patch) | |
tree | 34020541df1d6684e935cfd09f36cb6eed7b13f6 /test/web/streamer_test.exs | |
parent | a3d1d4894fdd8dd0133e1d2c6fde9d95f49dfcc7 (diff) | |
parent | bb864e96ad4e0be470da78baa000019f571e30db (diff) | |
download | pleroma-76722ea9c8dfbb8fefe247883946aa5c872d9a49.tar.gz pleroma-76722ea9c8dfbb8fefe247883946aa5c872d9a49.zip |
Merge branch 'develop' into kaniini/pleroma-bugfix/unlisted-statuses
Diffstat (limited to 'test/web/streamer_test.exs')
-rw-r--r-- | test/web/streamer_test.exs | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/test/web/streamer_test.exs b/test/web/streamer_test.exs new file mode 100644 index 000000000..47d491d1b --- /dev/null +++ b/test/web/streamer_test.exs @@ -0,0 +1,63 @@ +defmodule Pleroma.Web.StreamerTest do + use Pleroma.DataCase + + alias Pleroma.Web.Streamer + alias Pleroma.User + alias Pleroma.Web.CommonAPI + import Pleroma.Factory + + test "it sends to public" do + user = insert(:user) + other_user = insert(:user) + + task = + Task.async(fn -> + assert_receive {:text, _}, 4_000 + end) + + fake_socket = %{ + transport_pid: task.pid, + assigns: %{ + user: user + } + } + + {:ok, activity} = CommonAPI.post(other_user, %{"status" => "Test"}) + + topics = %{ + "public" => [fake_socket] + } + + Streamer.push_to_socket(topics, "public", activity) + + Task.await(task) + end + + test "it doesn't send to blocked users" do + user = insert(:user) + blocked_user = insert(:user) + {:ok, user} = User.block(user, blocked_user) + + task = + Task.async(fn -> + refute_receive {:text, _}, 1_000 + end) + + fake_socket = %{ + transport_pid: task.pid, + assigns: %{ + user: user + } + } + + {:ok, activity} = CommonAPI.post(blocked_user, %{"status" => "Test"}) + + topics = %{ + "public" => [fake_socket] + } + + Streamer.push_to_socket(topics, "public", activity) + + Task.await(task) + end +end |