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/user_test.exs | |
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/user_test.exs')
-rw-r--r-- | test/user_test.exs | 64 |
1 files changed, 52 insertions, 12 deletions
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 |