Add a test to ensure create_or_bump_for does not normalize objects before checking the activity type

This commit is contained in:
rinpatch 2019-05-13 10:32:04 +03:00
parent b9f84a382a
commit 15cda998f3

View file

@ -4,7 +4,9 @@
defmodule Pleroma.ConversationTest do defmodule Pleroma.ConversationTest do
use Pleroma.DataCase use Pleroma.DataCase
alias Pleroma.Activity
alias Pleroma.Conversation alias Pleroma.Conversation
alias Pleroma.Object
alias Pleroma.Web.CommonAPI alias Pleroma.Web.CommonAPI
import Pleroma.Factory import Pleroma.Factory
@ -134,4 +136,40 @@ test "create_or_bump_for returns the conversation with participations" do
assert {:error, _} = Conversation.create_or_bump_for(activity) assert {:error, _} = Conversation.create_or_bump_for(activity)
end end
test "create_or_bump_for does not normalize objects before checking the activity type" do
note = insert(:note)
note_id = note.data["id"]
Repo.delete(note)
refute Object.get_by_ap_id(note_id)
Tesla.Mock.mock(fn env ->
case env.url do
^note_id ->
# TODO: add attributedTo and tag to the note factory
body =
note.data
|> Map.put("attributedTo", note.data["actor"])
|> Map.put("tag", [])
|> Jason.encode!()
%Tesla.Env{status: 200, body: body}
end
end)
undo = %Activity{
id: "fake",
data: %{
"id" => Pleroma.Web.ActivityPub.Utils.generate_activity_id(),
"actor" => note.data["actor"],
"to" => [note.data["actor"]],
"object" => note_id,
"type" => "Undo"
}
}
Conversation.create_or_bump_for(undo)
refute Object.get_by_ap_id(note_id)
end
end end