Merge branch 'develop' into 'remove-twitter-api'
[akkoma] / test / tasks / user_test.exs
index ab56f07c128e890e9dd2e756b437afbcbd5f30a8..4aa873f0b1d557ab3eff6cc9be42872bed8cff03 100644 (file)
@@ -3,9 +3,12 @@
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Mix.Tasks.Pleroma.UserTest do
+  alias Pleroma.Activity
+  alias Pleroma.Object
   alias Pleroma.Repo
   alias Pleroma.Tests.ObanHelpers
   alias Pleroma.User
+  alias Pleroma.Web.CommonAPI
   alias Pleroma.Web.OAuth.Authorization
   alias Pleroma.Web.OAuth.Token
 
@@ -97,12 +100,34 @@ defmodule Mix.Tasks.Pleroma.UserTest do
 
         assert_received {:mix_shell, :info, [message]}
         assert message =~ " deleted"
-        refute User.get_by_nickname(user.nickname)
+        assert %{deactivated: true} = User.get_by_nickname(user.nickname)
 
         assert called(Pleroma.Web.Federator.publish(:_))
       end
     end
 
+    test "a remote user's create activity is deleted when the object has been pruned" do
+      user = insert(:user)
+
+      {:ok, post} = CommonAPI.post(user, %{status: "uguu"})
+      object = Object.normalize(post)
+      Object.prune(object)
+
+      with_mock Pleroma.Web.Federator,
+        publish: fn _ -> nil end do
+        Mix.Tasks.Pleroma.User.run(["rm", user.nickname])
+        ObanHelpers.perform_all()
+
+        assert_received {:mix_shell, :info, [message]}
+        assert message =~ " deleted"
+        assert %{deactivated: true} = User.get_by_nickname(user.nickname)
+
+        assert called(Pleroma.Web.Federator.publish(:_))
+      end
+
+      refute Activity.get_by_id(post.id)
+    end
+
     test "no user to delete" do
       Mix.Tasks.Pleroma.User.run(["rm", "nonexistent"])