From 1babd0798ff6b74a5049d8ddce19b9d131587d22 Mon Sep 17 00:00:00 2001 From: tusooa Date: Wed, 1 Mar 2023 00:40:44 -0500 Subject: Stop oban from retrying if validating errors occur when processing incoming data --- test/pleroma/workers/receiver_worker_test.exs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test') diff --git a/test/pleroma/workers/receiver_worker_test.exs b/test/pleroma/workers/receiver_worker_test.exs index 283beee4d..3098a3da9 100644 --- a/test/pleroma/workers/receiver_worker_test.exs +++ b/test/pleroma/workers/receiver_worker_test.exs @@ -22,4 +22,31 @@ defmodule Pleroma.Workers.ReceiverWorkerTest do }) end end + + test "it ignores ObjectValidator reject" do + params = + insert(:note_activity).data + |> Map.put("id", Pleroma.Web.ActivityPub.Utils.generate_activity_id()) + |> Map.put("object", %{ + "type" => "Note", + "id" => Pleroma.Web.ActivityPub.Utils.generate_object_id() + }) + + with_mock Pleroma.Web.ActivityPub.ObjectValidator, [:passthrough], + validate: fn _, _ -> {:error, %Ecto.Changeset{}} end do + assert {:cancel, {:error, %Ecto.Changeset{}}} = + ReceiverWorker.perform(%Oban.Job{ + args: %{"op" => "incoming_ap_doc", "params" => params} + }) + end + end + + test "it ignores duplicates" do + params = insert(:note_activity).data + + assert {:cancel, :already_present} = + ReceiverWorker.perform(%Oban.Job{ + args: %{"op" => "incoming_ap_doc", "params" => params} + }) + end end -- cgit v1.2.3 From bec4e5ac313e172d0077a9234cd4f733b980d180 Mon Sep 17 00:00:00 2001 From: tusooa Date: Wed, 1 Mar 2023 18:37:14 -0500 Subject: Fix FederatorTest --- test/pleroma/web/federator_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test') diff --git a/test/pleroma/web/federator_test.exs b/test/pleroma/web/federator_test.exs index 41d1c5d5e..1ffe6aae1 100644 --- a/test/pleroma/web/federator_test.exs +++ b/test/pleroma/web/federator_test.exs @@ -133,7 +133,7 @@ defmodule Pleroma.Web.FederatorTest do assert {:ok, _activity} = ObanHelpers.perform(job) assert {:ok, job} = Federator.incoming_ap_doc(params) - assert {:error, :already_present} = ObanHelpers.perform(job) + assert {:cancel, :already_present} = ObanHelpers.perform(job) end test "rejects incoming AP docs with incorrect origin" do -- cgit v1.2.3 From a0ec66ce7e33a547e8b2337e97705ec8bdf957f5 Mon Sep 17 00:00:00 2001 From: tusooa Date: Wed, 1 Mar 2023 21:14:52 -0500 Subject: Make clear the test names --- test/pleroma/workers/receiver_worker_test.exs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/pleroma/workers/receiver_worker_test.exs b/test/pleroma/workers/receiver_worker_test.exs index 3098a3da9..acea0ae00 100644 --- a/test/pleroma/workers/receiver_worker_test.exs +++ b/test/pleroma/workers/receiver_worker_test.exs @@ -11,7 +11,7 @@ defmodule Pleroma.Workers.ReceiverWorkerTest do alias Pleroma.Workers.ReceiverWorker - test "it ignores MRF reject" do + test "it does not retry MRF reject" do params = insert(:note).data with_mock Pleroma.Web.ActivityPub.Transmogrifier, @@ -23,7 +23,7 @@ defmodule Pleroma.Workers.ReceiverWorkerTest do end end - test "it ignores ObjectValidator reject" do + test "it does not retry ObjectValidator reject" do params = insert(:note_activity).data |> Map.put("id", Pleroma.Web.ActivityPub.Utils.generate_activity_id()) @@ -41,7 +41,7 @@ defmodule Pleroma.Workers.ReceiverWorkerTest do end end - test "it ignores duplicates" do + test "it does not retry duplicates" do params = insert(:note_activity).data assert {:cancel, :already_present} = -- cgit v1.2.3