total rebase
[anni] / test / pleroma / web / federator_test.exs
old mode 100755 (executable)
new mode 100644 (file)
index 1ffe6aa..4a398f2
@@ -40,6 +40,44 @@ defmodule Pleroma.Web.FederatorTest do
       %{activity: activity, relay_mock: relay_mock}
     end
 
+    test "to shared inbox when multiple actors from same instance are recipients" do
+      user = insert(:user)
+
+      shared_inbox = "https://domain.com/inbox"
+
+      follower_one =
+        insert(:user, %{
+          local: false,
+          nickname: "nick1@domain.com",
+          ap_id: "https://domain.com/users/nick1",
+          inbox: "https://domain.com/users/nick1/inbox",
+          shared_inbox: shared_inbox
+        })
+
+      follower_two =
+        insert(:user, %{
+          local: false,
+          nickname: "nick2@domain.com",
+          ap_id: "https://domain.com/users/nick2",
+          inbox: "https://domain.com/users/nick2/inbox",
+          shared_inbox: shared_inbox
+        })
+
+      {:ok, _, _} = Pleroma.User.follow(follower_one, user)
+      {:ok, _, _} = Pleroma.User.follow(follower_two, user)
+
+      {:ok, _activity} = CommonAPI.post(user, %{status: "Happy Friday everyone!"})
+
+      ObanHelpers.perform(all_enqueued(worker: PublisherWorker))
+
+      inboxes =
+        all_enqueued(worker: PublisherWorker)
+        |> Enum.filter(&(get_in(&1, [Access.key(:args), Access.key("op")]) == "publish_one"))
+        |> Enum.map(&get_in(&1, [Access.key(:args), Access.key("params"), Access.key("inbox")]))
+
+      assert [shared_inbox] == inboxes
+    end
+
     test "with relays active, it publishes to the relay", %{
       activity: activity,
       relay_mock: relay_mock
@@ -78,16 +116,14 @@ defmodule Pleroma.Web.FederatorTest do
         local: false,
         nickname: "nick1@domain.com",
         ap_id: "https://domain.com/users/nick1",
-        inbox: inbox1,
-        ap_enabled: true
+        inbox: inbox1
       })
 
       insert(:user, %{
         local: false,
         nickname: "nick2@domain2.com",
         ap_id: "https://domain2.com/users/nick2",
-        inbox: inbox2,
-        ap_enabled: true
+        inbox: inbox2
       })
 
       dt = NaiveDateTime.utc_now()