Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into issue/2115
[akkoma] / test / integration / mastodon_websocket_test.exs
index 39be5ad08a481414c3d4804c0b7b12485f2e7819..0f2e6cc2b0a1169e84cdb62fc55523133dc0013d 100644 (file)
@@ -12,17 +12,14 @@ defmodule Pleroma.Integration.MastodonWebsocketTest do
   alias Pleroma.Web.CommonAPI
   alias Pleroma.Web.OAuth
 
+  @moduletag needs_streamer: true, capture_log: true
+
   @path Pleroma.Web.Endpoint.url()
         |> URI.parse()
         |> Map.put(:scheme, "ws")
         |> Map.put(:path, "/api/v1/streaming")
         |> URI.to_string()
 
-  setup_all do
-    start_supervised(Pleroma.Web.Streamer.supervisor())
-    :ok
-  end
-
   def start_socket(qs \\ nil, headers \\ []) do
     path =
       case qs do
@@ -58,7 +55,7 @@ defmodule Pleroma.Integration.MastodonWebsocketTest do
   test "receives well formatted events" do
     user = insert(:user)
     {:ok, _} = start_socket("?stream=public")
-    {:ok, activity} = CommonAPI.post(user, %{"status" => "nice echo chamber"})
+    {:ok, activity} = CommonAPI.post(user, %{status: "nice echo chamber"})
 
     assert_receive {:text, raw_json}, 1_000
     assert {:ok, json} = Jason.decode(raw_json)
@@ -81,7 +78,7 @@ defmodule Pleroma.Integration.MastodonWebsocketTest do
         Pleroma.Repo.insert(
           OAuth.App.register_changeset(%OAuth.App{}, %{
             client_name: "client",
-            scopes: ["scope"],
+            scopes: ["read"],
             redirect_uris: "url"
           })
         )
@@ -102,30 +99,30 @@ defmodule Pleroma.Integration.MastodonWebsocketTest do
     test "accepts the 'user' stream", %{token: token} = _state do
       assert {:ok, _} = start_socket("?stream=user&access_token=#{token.token}")
 
-      assert capture_log(fn ->
-               assert {:error, {401, _}} = start_socket("?stream=user")
-               Process.sleep(30)
-             end) =~ ":badarg"
+      capture_log(fn ->
+        assert {:error, {401, _}} = start_socket("?stream=user")
+        Process.sleep(30)
+      end)
     end
 
     test "accepts the 'user:notification' stream", %{token: token} = _state do
       assert {:ok, _} = start_socket("?stream=user:notification&access_token=#{token.token}")
 
-      assert capture_log(fn ->
-               assert {:error, {401, _}} = start_socket("?stream=user:notification")
-               Process.sleep(30)
-             end) =~ ":badarg"
+      capture_log(fn ->
+        assert {:error, {401, _}} = start_socket("?stream=user:notification")
+        Process.sleep(30)
+      end)
     end
 
     test "accepts valid token on Sec-WebSocket-Protocol header", %{token: token} do
       assert {:ok, _} = start_socket("?stream=user", [{"Sec-WebSocket-Protocol", token.token}])
 
-      assert capture_log(fn ->
-               assert {:error, {401, _}} =
-                        start_socket("?stream=user", [{"Sec-WebSocket-Protocol", "I am a friend"}])
+      capture_log(fn ->
+        assert {:error, {401, _}} =
+                 start_socket("?stream=user", [{"Sec-WebSocket-Protocol", "I am a friend"}])
 
-               Process.sleep(30)
-             end) =~ ":badarg"
+        Process.sleep(30)
+      end)
     end
   end
 end