X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;ds=sidebyside;f=test%2Ftasks%2Frelay_test.exs;h=08855f2459147220345106a0145164096b6746d1;hb=5f625c91361f68186a95354bbcff108435ce4d07;hp=64ff07753af295814a6fd5f7dcb29e923022ff3d;hpb=04b1c135543965860029557fc216eb38fd63b6c7;p=akkoma diff --git a/test/tasks/relay_test.exs b/test/tasks/relay_test.exs index 64ff07753..08855f245 100644 --- a/test/tasks/relay_test.exs +++ b/test/tasks/relay_test.exs @@ -1,13 +1,13 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2018 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Mix.Tasks.Pleroma.RelayTest do alias Pleroma.Activity + alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub - alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.ActivityPub.Relay - alias Pleroma.User + alias Pleroma.Web.ActivityPub.Utils use Pleroma.DataCase setup_all do @@ -31,7 +31,7 @@ defmodule Mix.Tasks.Pleroma.RelayTest do local_user = Relay.get_actor() assert local_user.ap_id =~ "/relay" - target_user = User.get_by_ap_id(target_instance) + target_user = User.get_cached_by_ap_id(target_instance) refute target_user.local activity = Utils.fetch_latest_follow(local_user, target_user) @@ -48,9 +48,10 @@ defmodule Mix.Tasks.Pleroma.RelayTest do Mix.Tasks.Pleroma.Relay.run(["follow", target_instance]) %User{ap_id: follower_id} = local_user = Relay.get_actor() - target_user = User.get_by_ap_id(target_instance) + target_user = User.get_cached_by_ap_id(target_instance) follow_activity = Utils.fetch_latest_follow(local_user, target_user) - + User.follow(local_user, target_user) + assert "#{target_instance}/followers" in User.following(local_user) Mix.Tasks.Pleroma.Relay.run(["unfollow", target_instance]) cancelled_activity = Activity.get_by_ap_id(follow_activity.data["id"]) @@ -60,12 +61,35 @@ defmodule Mix.Tasks.Pleroma.RelayTest do ActivityPub.fetch_activities([], %{ "type" => "Undo", "actor_id" => follower_id, - "limit" => 1 + "limit" => 1, + "skip_preload" => true }) assert undo_activity.data["type"] == "Undo" assert undo_activity.data["actor"] == local_user.ap_id assert undo_activity.data["object"] == cancelled_activity.data + refute "#{target_instance}/followers" in User.following(local_user) + end + end + + describe "mix pleroma.relay list" do + test "Prints relay subscription list" do + :ok = Mix.Tasks.Pleroma.Relay.run(["list"]) + + refute_receive {:mix_shell, :info, _} + + relay_user = Relay.get_actor() + + ["http://mastodon.example.org/users/admin", "https://mstdn.io/users/mayuutann"] + |> Enum.each(fn ap_id -> + {:ok, user} = User.get_or_fetch_by_ap_id(ap_id) + User.follow(relay_user, user) + end) + + :ok = Mix.Tasks.Pleroma.Relay.run(["list"]) + + assert_receive {:mix_shell, :info, ["mstdn.io"]} + assert_receive {:mix_shell, :info, ["mastodon.example.org"]} end end end