commit: ed538603fb5f2941bbdce61e11e9e3ca6adec395
parent 4b168691fefd2dc168ed900c2521f51b6c0e602d
Author: Lain Soykaf <lain@lain.com>
Date: Sun, 21 Dec 2025 14:04:19 +0400
TransmogrifierTest: Add failing test for Update.
Diffstat:
1 file changed, 27 insertions(+), 0 deletions(-)
diff --git a/test/pleroma/web/activity_pub/transmogrifier_test.exs b/test/pleroma/web/activity_pub/transmogrifier_test.exs
@@ -9,7 +9,10 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
alias Pleroma.Activity
alias Pleroma.Object
alias Pleroma.User
+ alias Pleroma.Web.ActivityPub.Builder
+ alias Pleroma.Web.ActivityPub.Pipeline
alias Pleroma.Web.ActivityPub.Transmogrifier
+ alias Pleroma.Web.ActivityPub.UserView
alias Pleroma.Web.ActivityPub.Utils
alias Pleroma.Web.AdminAPI.AccountView
alias Pleroma.Web.CommonAPI
@@ -644,6 +647,30 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
} = prepared["object"]
end
+ test "Updates of Actors are handled" do
+ user = insert(:user, local: true)
+
+ changeset = User.update_changeset(user, %{name: "new name"})
+ {:ok, unpersisted_user} = Ecto.Changeset.apply_action(changeset, :update)
+
+ updated_object =
+ UserView.render("user.json", user: unpersisted_user)
+ |> Map.delete("@context")
+
+ {:ok, update_data, []} = Builder.update(user, updated_object)
+
+ {:ok, activity, _} =
+ Pipeline.common_pipeline(update_data,
+ local: true,
+ user_update_changeset: changeset
+ )
+
+ assert {:ok, prepared} = Transmogrifier.prepare_outgoing(activity.data)
+ assert prepared["type"] == "Update"
+ assert prepared["@context"]
+ assert prepared["object"]["type"] == user.actor_type
+ end
+
test "Correctly handles Undo activities" do
blocked = insert(:user)
blocker = insert(:user, local: true)