ChatController: Support deletion of chat messages.
[akkoma] / test / web / common_api / common_api_test.exs
index 61affda5dec0c6c18c3d20ca41a30024511a4905..bc204e6e816adac628286479c85473bc35268baf 100644 (file)
@@ -54,6 +54,8 @@ defmodule Pleroma.Web.CommonAPITest do
 
       assert Chat.get(author.id, recipient.ap_id)
       assert Chat.get(recipient.id, author.ap_id)
+
+      assert :ok == Pleroma.Web.Federator.perform(:publish, activity)
     end
 
     test "it reject messages over the local limit" do
@@ -74,6 +76,24 @@ defmodule Pleroma.Web.CommonAPITest do
   end
 
   describe "deletion" do
+    test "it works with pruned objects" do
+      user = insert(:user)
+
+      {:ok, post} = CommonAPI.post(user, %{"status" => "namu amida butsu"})
+
+      Object.normalize(post, false)
+      |> Object.prune()
+
+      with_mock Pleroma.Web.Federator,
+        publish: fn _ -> nil end do
+        assert {:ok, delete} = CommonAPI.delete(post.id, user)
+        assert delete.local
+        assert called(Pleroma.Web.Federator.publish(delete))
+      end
+
+      refute Activity.get_by_id(post.id)
+    end
+
     test "it allows users to delete their posts" do
       user = insert(:user)