aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAlexander Strizhakov <alex.strizhakov@gmail.com>2020-05-08 16:54:53 +0300
committerAlexander Strizhakov <alex.strizhakov@gmail.com>2020-05-08 17:11:17 +0300
commit287f781808c88f43f5689508b5aa21f6639b9d16 (patch)
treee8aa008b2446f5c4170cd6f9ea6b7701e31dd98b /test
parentfbcc53760e6fcd393513c05a5bd7a4a6a6f3b731 (diff)
downloadpleroma-287f781808c88f43f5689508b5aa21f6639b9d16.tar.gz
user deletion
Diffstat (limited to 'test')
-rw-r--r--test/user_test.exs27
-rw-r--r--test/web/activity_pub/side_effects_test.exs25
2 files changed, 52 insertions, 0 deletions
diff --git a/test/user_test.exs b/test/user_test.exs
index a3c75aa9b..96116fca6 100644
--- a/test/user_test.exs
+++ b/test/user_test.exs
@@ -1171,6 +1171,33 @@ defmodule Pleroma.UserTest do
end
end
+ describe "delete/1 when confirmation is pending" do
+ setup do
+ user = insert(:user, confirmation_pending: true)
+ {:ok, user: user}
+ end
+
+ test "deletes user from database when activation required", %{user: user} do
+ clear_config([:instance, :account_activation_required], true)
+
+ {:ok, job} = User.delete(user)
+ {:ok, _} = ObanHelpers.perform(job)
+
+ refute User.get_cached_by_id(user.id)
+ refute User.get_by_id(user.id)
+ end
+
+ test "deactivates user when activation is not required", %{user: user} do
+ clear_config([:instance, :account_activation_required], false)
+
+ {:ok, job} = User.delete(user)
+ {:ok, _} = ObanHelpers.perform(job)
+
+ assert %{deactivated: true} = User.get_cached_by_id(user.id)
+ assert %{deactivated: true} = User.get_by_id(user.id)
+ end
+ end
+
test "get_public_key_for_ap_id fetches a user that's not in the db" do
assert {:ok, _key} = User.get_public_key_for_ap_id("http://mastodon.example.org/users/admin")
end
diff --git a/test/web/activity_pub/side_effects_test.exs b/test/web/activity_pub/side_effects_test.exs
index b29a7a7be..5c06dc864 100644
--- a/test/web/activity_pub/side_effects_test.exs
+++ b/test/web/activity_pub/side_effects_test.exs
@@ -99,6 +99,31 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do
end
end
+ describe "delete users with confirmation pending" do
+ setup do
+ user = insert(:user, confirmation_pending: true)
+ {:ok, delete_user_data, _meta} = Builder.delete(user, user.ap_id)
+ {:ok, delete_user, _meta} = ActivityPub.persist(delete_user_data, local: true)
+ {:ok, delete: delete_user, user: user}
+ end
+
+ test "when activation is not required", %{delete: delete, user: user} do
+ clear_config([:instance, :account_activation_required], false)
+ {:ok, _, _} = SideEffects.handle(delete)
+ ObanHelpers.perform_all()
+
+ assert User.get_cached_by_id(user.id).deactivated
+ end
+
+ test "when activation is required", %{delete: delete, user: user} do
+ clear_config([:instance, :account_activation_required], true)
+ {:ok, _, _} = SideEffects.handle(delete)
+ ObanHelpers.perform_all()
+
+ refute User.get_cached_by_id(user.id)
+ end
+ end
+
describe "Undo objects" do
setup do
poster = insert(:user)