diff options
author | Mint <mint@plagu.ee> | 2024-01-11 23:10:40 +0300 |
---|---|---|
committer | Mint <mint@plagu.ee> | 2024-01-11 23:10:40 +0300 |
commit | 379d7fafd53686886643b4886d71b41f4d594fbe (patch) | |
tree | e8e11f73f5c937414b8b1bd9807496d1d9217bc1 | |
parent | 3c30eadd5ede822d6310d3ce6534d26d7caf41f5 (diff) | |
parent | dcb2b1413b4eebbb177807ff4947aade9c42b16d (diff) | |
download | pleroma-379d7fafd53686886643b4886d71b41f4d594fbe.tar.gz pleroma-379d7fafd53686886643b4886d71b41f4d594fbe.zip |
Merge branch 'use-shared-inbox-test' of pleromergit:pleroma/pleroma into fix-duplicate-inbox-deliveries
-rw-r--r-- | test/pleroma/web/federator_test.exs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/pleroma/web/federator_test.exs b/test/pleroma/web/federator_test.exs index 6826e6c2f..4a398f239 100644 --- a/test/pleroma/web/federator_test.exs +++ b/test/pleroma/web/federator_test.exs @@ -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 |