diff options
author | lain <lain@soykaf.club> | 2019-08-19 14:36:10 +0000 |
---|---|---|
committer | lain <lain@soykaf.club> | 2019-08-19 14:36:10 +0000 |
commit | 49ae3191df2a7acfa741e93d6f5142f9cf27dc06 (patch) | |
tree | 3551b826ae23b53ac30d740f49802d1c78ea2bc3 /test | |
parent | 608773c5efa592167930294da2aeb3931556aa08 (diff) | |
parent | e652cef76b99588867315347e8dcc3d323d8a161 (diff) | |
download | pleroma-49ae3191df2a7acfa741e93d6f5142f9cf27dc06.tar.gz pleroma-49ae3191df2a7acfa741e93d6f5142f9cf27dc06.zip |
Merge branch 'hotfix/user_unfollow' into 'develop'
[#1177] fixed User.unfollow with synchronization external user
See merge request pleroma/pleroma!1579
Diffstat (limited to 'test')
-rw-r--r-- | test/tasks/relay_test.exs | 23 | ||||
-rw-r--r-- | test/user_test.exs | 64 |
2 files changed, 75 insertions, 12 deletions
diff --git a/test/tasks/relay_test.exs b/test/tasks/relay_test.exs index 9d260da3e..0d341c8d6 100644 --- a/test/tasks/relay_test.exs +++ b/test/tasks/relay_test.exs @@ -69,4 +69,27 @@ defmodule Mix.Tasks.Pleroma.RelayTest do assert undo_activity.data["object"] == cancelled_activity.data 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, _} + + Pleroma.Web.ActivityPub.Relay.get_actor() + |> Ecto.Changeset.change( + following: [ + "http://test-app.com/user/test1", + "http://test-app.com/user/test1", + "http://test-app-42.com/user/test1" + ] + ) + |> Pleroma.User.update_and_set_cache() + + :ok = Mix.Tasks.Pleroma.Relay.run(["list"]) + + assert_receive {:mix_shell, :info, ["test-app.com"]} + assert_receive {:mix_shell, :info, ["test-app-42.com"]} + end + end end diff --git a/test/user_test.exs b/test/user_test.exs index 96f2a252d..8cb6567a1 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -203,24 +203,64 @@ defmodule Pleroma.UserTest do # assert websub # end - test "unfollow takes a user and another user" do - followed = insert(:user) - user = insert(:user, %{following: [User.ap_followers(followed)]}) + describe "unfollow/2" do + setup do + setting = Pleroma.Config.get([:instance, :external_user_synchronization]) - {:ok, user, _activity} = User.unfollow(user, followed) + on_exit(fn -> + Pleroma.Config.put([:instance, :external_user_synchronization], setting) + end) - user = User.get_cached_by_id(user.id) + :ok + end - assert user.following == [] - end + test "unfollow with syncronizes external user" do + Pleroma.Config.put([:instance, :external_user_synchronization], true) - test "unfollow doesn't unfollow yourself" do - user = insert(:user) + followed = + insert(:user, + nickname: "fuser1", + follower_address: "http://localhost:4001/users/fuser1/followers", + following_address: "http://localhost:4001/users/fuser1/following", + ap_id: "http://localhost:4001/users/fuser1" + ) + + user = + insert(:user, %{ + local: false, + nickname: "fuser2", + ap_id: "http://localhost:4001/users/fuser2", + follower_address: "http://localhost:4001/users/fuser2/followers", + following_address: "http://localhost:4001/users/fuser2/following", + following: [User.ap_followers(followed)] + }) - {:error, _} = User.unfollow(user, user) + {:ok, user, _activity} = User.unfollow(user, followed) - user = User.get_cached_by_id(user.id) - assert user.following == [user.ap_id] + user = User.get_cached_by_id(user.id) + + assert user.following == [] + end + + test "unfollow takes a user and another user" do + followed = insert(:user) + user = insert(:user, %{following: [User.ap_followers(followed)]}) + + {:ok, user, _activity} = User.unfollow(user, followed) + + user = User.get_cached_by_id(user.id) + + assert user.following == [] + end + + test "unfollow doesn't unfollow yourself" do + user = insert(:user) + + {:error, _} = User.unfollow(user, user) + + user = User.get_cached_by_id(user.id) + assert user.following == [user.ap_id] + end end test "test if a user is following another user" do |