|
|
@@ -1,6 +1,10 @@ |
|
|
|
defmodule Pleroma.Web.FederatorTest do |
|
|
|
alias Pleroma.Web.Federator |
|
|
|
alias Pleroma.Web.CommonAPI |
|
|
|
alias Pleroma.Config |
|
|
|
use Pleroma.DataCase |
|
|
|
import Pleroma.Factory |
|
|
|
import Mock |
|
|
|
|
|
|
|
test "enqueues an element according to priority" do |
|
|
|
queue = [%{item: 1, priority: 2}] |
|
|
@@ -17,4 +21,45 @@ defmodule Pleroma.Web.FederatorTest do |
|
|
|
|
|
|
|
assert {2, [%{item: 1, priority: 2}]} = Federator.queue_pop(queue) |
|
|
|
end |
|
|
|
|
|
|
|
describe "Publish an activity" do |
|
|
|
setup do |
|
|
|
user = insert(:user) |
|
|
|
{:ok, activity} = CommonAPI.post(user, %{"status" => "HI"}) |
|
|
|
|
|
|
|
relay_mock = { |
|
|
|
Pleroma.Web.ActivityPub.Relay, |
|
|
|
[], |
|
|
|
[publish: fn _activity -> send(self(), :relay_publish) end] |
|
|
|
} |
|
|
|
|
|
|
|
%{activity: activity, relay_mock: relay_mock} |
|
|
|
end |
|
|
|
|
|
|
|
test "with relays active, it publishes to the relay", %{ |
|
|
|
activity: activity, |
|
|
|
relay_mock: relay_mock |
|
|
|
} do |
|
|
|
Config.put([:instance, :allow_relay], true) |
|
|
|
|
|
|
|
with_mocks([relay_mock]) do |
|
|
|
Federator.handle(:publish, activity) |
|
|
|
end |
|
|
|
|
|
|
|
assert_received :relay_publish |
|
|
|
end |
|
|
|
|
|
|
|
test "with relays deactivated, it does not publish to the relay", %{ |
|
|
|
activity: activity, |
|
|
|
relay_mock: relay_mock |
|
|
|
} do |
|
|
|
Config.put([:instance, :allow_relay], false) |
|
|
|
|
|
|
|
with_mocks([relay_mock]) do |
|
|
|
Federator.handle(:publish, activity) |
|
|
|
end |
|
|
|
|
|
|
|
refute_received :relay_publish |
|
|
|
end |
|
|
|
end |
|
|
|
end |