aboutsummaryrefslogtreecommitdiff
path: root/test/pleroma/web/streamer_test.exs
diff options
context:
space:
mode:
Diffstat (limited to 'test/pleroma/web/streamer_test.exs')
-rw-r--r--test/pleroma/web/streamer_test.exs54
1 files changed, 54 insertions, 0 deletions
diff --git a/test/pleroma/web/streamer_test.exs b/test/pleroma/web/streamer_test.exs
index b788a9138..5426467e5 100644
--- a/test/pleroma/web/streamer_test.exs
+++ b/test/pleroma/web/streamer_test.exs
@@ -813,4 +813,58 @@ defmodule Pleroma.Web.StreamerTest do
assert last_status["id"] == to_string(create_activity.id)
end
end
+
+ describe "stop streaming if token got revoked" do
+ test "do not revoke other tokens" do
+ %{user: user, token: token} = oauth_access(["read"])
+ %{token: token2} = oauth_access(["read"], user: user)
+ %{user: user2, token: user2_token} = oauth_access(["read"])
+
+ post_user = insert(:user)
+ CommonAPI.follow(user, post_user)
+ CommonAPI.follow(user2, post_user)
+
+ Streamer.get_topic_and_add_socket("user", user, token)
+ Streamer.get_topic_and_add_socket("user", user, token2)
+ Streamer.get_topic_and_add_socket("user", user2, user2_token)
+
+ {:ok, _} =
+ CommonAPI.post(post_user, %{
+ status: "hi"
+ })
+
+ assert_receive {:render_with_user, _, "update.json", _}
+ assert_receive {:render_with_user, _, "update.json", _}
+ assert_receive {:render_with_user, _, "update.json", _}
+
+ Pleroma.Web.OAuth.Token.Strategy.Revoke.revoke(token)
+
+ assert_receive :close
+ refute_receive :close
+ end
+
+ test "revoke all streams for this token" do
+ %{user: user, token: token} = oauth_access(["read"])
+
+ post_user = insert(:user)
+ CommonAPI.follow(user, post_user)
+
+ Streamer.get_topic_and_add_socket("user", user, token)
+ Streamer.get_topic_and_add_socket("user", user, token)
+
+ {:ok, _} =
+ CommonAPI.post(post_user, %{
+ status: "hi"
+ })
+
+ assert_receive {:render_with_user, _, "update.json", _}
+ assert_receive {:render_with_user, _, "update.json", _}
+
+ Pleroma.Web.OAuth.Token.Strategy.Revoke.revoke(token)
+
+ assert_receive :close
+ assert_receive :close
+ refute_receive :close
+ end
+ end
end