Merge remote-tracking branch 'upstream/develop' into block-behavior
[akkoma] / test / pleroma / web / streamer_test.exs
index 3229ba6f9c90d0990a037d72d32de01668960f6d..b788a913861b56cceac3d10604b4f8cf9ed557f3 100644 (file)
@@ -1,5 +1,5 @@
 # Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.StreamerTest do
@@ -266,7 +266,7 @@ defmodule Pleroma.Web.StreamerTest do
       {:ok, create_activity} =
         CommonAPI.post_chat_message(other_user, user, "hey cirno", idempotency_key: "123")
 
-      object = Object.normalize(create_activity, false)
+      object = Object.normalize(create_activity, fetch: false)
       chat = Chat.get(user.id, other_user.ap_id)
       cm_ref = MessageReference.for_chat_and_object(chat, object)
       cm_ref = %{cm_ref | chat: chat, object: object}
@@ -284,7 +284,7 @@ defmodule Pleroma.Web.StreamerTest do
       other_user = insert(:user)
 
       {:ok, create_activity} = CommonAPI.post_chat_message(other_user, user, "hey cirno")
-      object = Object.normalize(create_activity, false)
+      object = Object.normalize(create_activity, fetch: false)
       chat = Chat.get(user.id, other_user.ap_id)
       cm_ref = MessageReference.for_chat_and_object(chat, object)
       cm_ref = %{cm_ref | chat: chat, object: object}
@@ -383,19 +383,8 @@ defmodule Pleroma.Web.StreamerTest do
       user: user,
       token: oauth_token
     } do
-      user_url = user.ap_id
       user2 = insert(:user)
 
-      body =
-        File.read!("test/fixtures/users_mock/localhost.json")
-        |> String.replace("{{nickname}}", user.nickname)
-        |> Jason.encode!()
-
-      Tesla.Mock.mock_global(fn
-        %{method: :get, url: ^user_url} ->
-          %Tesla.Env{status: 200, body: body}
-      end)
-
       Streamer.get_topic_and_add_socket("user:notification", user, oauth_token)
       {:ok, _follower, _followed, follow_activity} = CommonAPI.follow(user2, user)
 
@@ -404,68 +393,51 @@ defmodule Pleroma.Web.StreamerTest do
       refute Streamer.filtered_by_user?(user, notif)
     end
 
-    test "it sends relationships updates to the 'user' stream", %{
+    test "it sends follow relationships updates to the 'user' stream", %{
       user: user,
       token: oauth_token
     } do
       user_id = user.id
-      user_url = user.ap_id
-      follower = insert(:user)
-      follower_token = insert(:oauth_token, user: follower)
-      follower_id = follower.id
-
-      body =
-        File.read!("test/fixtures/users_mock/localhost.json")
-        |> String.replace("{{nickname}}", user.nickname)
-        |> Jason.encode!()
-
-      Tesla.Mock.mock_global(fn
-        %{method: :get, url: ^user_url} ->
-          %Tesla.Env{status: 200, body: body}
-      end)
+      other_user = insert(:user)
+      other_user_id = other_user.id
 
       Streamer.get_topic_and_add_socket("user", user, oauth_token)
-      Streamer.get_topic_and_add_socket("user", follower, follower_token)
-      {:ok, _follower, _followed, _follow_activity} = CommonAPI.follow(follower, user)
+      {:ok, _follower, _followed, _follow_activity} = CommonAPI.follow(user, other_user)
 
-      # follow_pending event sent to both follower and following
       assert_receive {:text, event}
-      assert_receive {:text, ^event}
 
-      assert %{"event" => "pleroma:relationships_update", "payload" => payload} =
+      assert %{"event" => "pleroma:follow_relationships_update", "payload" => payload} =
                Jason.decode!(event)
 
       assert %{
                "follower" => %{
                  "follower_count" => 0,
                  "following_count" => 0,
-                 "id" => ^follower_id
+                 "id" => ^user_id
                },
                "following" => %{
                  "follower_count" => 0,
                  "following_count" => 0,
-                 "id" => ^user_id
+                 "id" => ^other_user_id
                },
                "state" => "follow_pending"
              } = Jason.decode!(payload)
 
-      # follow_accept event sent to both follower and following
       assert_receive {:text, event}
-      assert_receive {:text, ^event}
 
-      assert %{"event" => "pleroma:relationships_update", "payload" => payload} =
+      assert %{"event" => "pleroma:follow_relationships_update", "payload" => payload} =
                Jason.decode!(event)
 
       assert %{
                "follower" => %{
                  "follower_count" => 0,
                  "following_count" => 1,
-                 "id" => ^follower_id
+                 "id" => ^user_id
                },
                "following" => %{
                  "follower_count" => 1,
                  "following_count" => 0,
-                 "id" => ^user_id
+                 "id" => ^other_user_id
                },
                "state" => "follow_accept"
              } = Jason.decode!(payload)
@@ -516,7 +488,7 @@ defmodule Pleroma.Web.StreamerTest do
 
   describe "thread_containment/2" do
     test "it filters to user if recipients invalid and thread containment is enabled" do
-      Pleroma.Config.put([:instance, :skip_thread_containment], false)
+      clear_config([:instance, :skip_thread_containment], false)
       author = insert(:user)
       %{user: user, token: oauth_token} = oauth_access(["read"])
       User.follow(user, author, :follow_accept)
@@ -537,7 +509,7 @@ defmodule Pleroma.Web.StreamerTest do
     end
 
     test "it sends message if recipients invalid and thread containment is disabled" do
-      Pleroma.Config.put([:instance, :skip_thread_containment], true)
+      clear_config([:instance, :skip_thread_containment], true)
       author = insert(:user)
       %{user: user, token: oauth_token} = oauth_access(["read"])
       User.follow(user, author, :follow_accept)
@@ -559,7 +531,7 @@ defmodule Pleroma.Web.StreamerTest do
     end
 
     test "it sends message if recipients invalid and thread containment is enabled but user's thread containment is disabled" do
-      Pleroma.Config.put([:instance, :skip_thread_containment], false)
+      clear_config([:instance, :skip_thread_containment], false)
       author = insert(:user)
       user = insert(:user, skip_thread_containment: true)
       %{token: oauth_token} = oauth_access(["read"], user: user)