From 8c71f7e11a377d92234c141ea50170485e773fdc Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Tue, 4 Feb 2020 20:35:32 +0400 Subject: Add support for cancellation of a follow request --- test/web/common_api/common_api_test.exs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'test/web/common_api/common_api_test.exs') diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index 8fa0c6faa..2bbe6c923 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -536,6 +536,30 @@ defmodule Pleroma.Web.CommonAPITest do refute User.subscribed_to?(follower, followed) end + + test "cancels a pending follow" do + follower = insert(:user) + followed = insert(:user, locked: true) + + assert {:ok, follower, followed, %{id: activity_id, data: %{"state" => "pending"}}} = + CommonAPI.follow(follower, followed) + + assert %{state: "pending"} = Pleroma.FollowingRelationship.get(follower, followed) + + assert {:ok, follower} = CommonAPI.unfollow(follower, followed) + + assert Pleroma.FollowingRelationship.get(follower, followed) == nil + + assert %{id: ^activity_id, data: %{"state" => "cancelled"}} = + Pleroma.Web.ActivityPub.Utils.fetch_latest_follow(follower, followed) + + assert %{ + data: %{ + "type" => "Undo", + "object" => %{"type" => "Follow", "state" => "cancelled"} + } + } = Pleroma.Web.ActivityPub.Utils.fetch_latest_undo(follower) + end end describe "accept_follow_request/2" do -- cgit v1.2.3 From 8b9742ecf546c37695229d54f0a0b3ed4edd66e1 Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Thu, 6 Feb 2020 16:47:15 +0400 Subject: Cancellation of a follow request for a remote user --- test/web/common_api/common_api_test.exs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'test/web/common_api/common_api_test.exs') diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index 2bbe6c923..7eff24ce4 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -537,7 +537,7 @@ defmodule Pleroma.Web.CommonAPITest do refute User.subscribed_to?(follower, followed) end - test "cancels a pending follow" do + test "cancels a pending follow for a local user" do follower = insert(:user) followed = insert(:user, locked: true) @@ -560,6 +560,30 @@ defmodule Pleroma.Web.CommonAPITest do } } = Pleroma.Web.ActivityPub.Utils.fetch_latest_undo(follower) end + + test "cancels a pending follow for a remote user" do + follower = insert(:user) + followed = insert(:user, locked: true, local: false, ap_enabled: true) + + assert {:ok, follower, followed, %{id: activity_id, data: %{"state" => "pending"}}} = + CommonAPI.follow(follower, followed) + + assert %{state: "pending"} = Pleroma.FollowingRelationship.get(follower, followed) + + assert {:ok, follower} = CommonAPI.unfollow(follower, followed) + + assert Pleroma.FollowingRelationship.get(follower, followed) == nil + + assert %{id: ^activity_id, data: %{"state" => "cancelled"}} = + Pleroma.Web.ActivityPub.Utils.fetch_latest_follow(follower, followed) + + assert %{ + data: %{ + "type" => "Undo", + "object" => %{"type" => "Follow", "state" => "cancelled"} + } + } = Pleroma.Web.ActivityPub.Utils.fetch_latest_undo(follower) + end end describe "accept_follow_request/2" do -- cgit v1.2.3 From bc2e98b20099be767a8262b734c6702edea663b4 Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Fri, 7 Feb 2020 16:17:34 +0400 Subject: Add User.get_follow_state/2 --- test/web/common_api/common_api_test.exs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'test/web/common_api/common_api_test.exs') diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index 7eff24ce4..a7b362525 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -544,11 +544,9 @@ defmodule Pleroma.Web.CommonAPITest do assert {:ok, follower, followed, %{id: activity_id, data: %{"state" => "pending"}}} = CommonAPI.follow(follower, followed) - assert %{state: "pending"} = Pleroma.FollowingRelationship.get(follower, followed) - + assert User.get_follow_state(follower, followed) == "pending" assert {:ok, follower} = CommonAPI.unfollow(follower, followed) - - assert Pleroma.FollowingRelationship.get(follower, followed) == nil + assert User.get_follow_state(follower, followed) == nil assert %{id: ^activity_id, data: %{"state" => "cancelled"}} = Pleroma.Web.ActivityPub.Utils.fetch_latest_follow(follower, followed) @@ -568,11 +566,9 @@ defmodule Pleroma.Web.CommonAPITest do assert {:ok, follower, followed, %{id: activity_id, data: %{"state" => "pending"}}} = CommonAPI.follow(follower, followed) - assert %{state: "pending"} = Pleroma.FollowingRelationship.get(follower, followed) - + assert User.get_follow_state(follower, followed) == "pending" assert {:ok, follower} = CommonAPI.unfollow(follower, followed) - - assert Pleroma.FollowingRelationship.get(follower, followed) == nil + assert User.get_follow_state(follower, followed) == nil assert %{id: ^activity_id, data: %{"state" => "cancelled"}} = Pleroma.Web.ActivityPub.Utils.fetch_latest_follow(follower, followed) -- cgit v1.2.3