1 defmodule Pleroma.Web.FederatorTest do
2 alias Pleroma.Web.Federator
3 alias Pleroma.Web.CommonAPI
9 test "enqueues an element according to priority" do
10 queue = [%{item: 1, priority: 2}]
12 new_queue = Federator.enqueue_sorted(queue, 2, 1)
13 assert new_queue == [%{item: 2, priority: 1}, %{item: 1, priority: 2}]
15 new_queue = Federator.enqueue_sorted(queue, 2, 3)
16 assert new_queue == [%{item: 1, priority: 2}, %{item: 2, priority: 3}]
19 test "pop first item" do
20 queue = [%{item: 2, priority: 1}, %{item: 1, priority: 2}]
22 assert {2, [%{item: 1, priority: 2}]} = Federator.queue_pop(queue)
25 describe "Publish an activity" do
28 {:ok, activity} = CommonAPI.post(user, %{"status" => "HI"})
31 Pleroma.Web.ActivityPub.Relay,
33 [publish: fn _activity -> send(self(), :relay_publish) end]
36 %{activity: activity, relay_mock: relay_mock}
39 test "with relays active, it publishes to the relay", %{
41 relay_mock: relay_mock
43 Config.put([:instance, :allow_relay], true)
45 with_mocks([relay_mock]) do
46 Federator.handle(:publish, activity)
49 assert_received :relay_publish
52 test "with relays deactivated, it does not publish to the relay", %{
54 relay_mock: relay_mock
56 Config.put([:instance, :allow_relay], false)
58 with_mocks([relay_mock]) do
59 Federator.handle(:publish, activity)
62 refute_received :relay_publish