logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git

receiver_worker_test.exs (1637B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.Workers.ReceiverWorkerTest do
  5. use Pleroma.DataCase
  6. use Oban.Testing, repo: Pleroma.Repo
  7. import Mock
  8. import Pleroma.Factory
  9. alias Pleroma.Workers.ReceiverWorker
  10. test "it does not retry MRF reject" do
  11. params = insert(:note).data
  12. with_mock Pleroma.Web.ActivityPub.Transmogrifier,
  13. handle_incoming: fn _ -> {:reject, "MRF"} end do
  14. assert {:cancel, "MRF"} =
  15. ReceiverWorker.perform(%Oban.Job{
  16. args: %{"op" => "incoming_ap_doc", "params" => params}
  17. })
  18. end
  19. end
  20. test "it does not retry ObjectValidator reject" do
  21. params =
  22. insert(:note_activity).data
  23. |> Map.put("id", Pleroma.Web.ActivityPub.Utils.generate_activity_id())
  24. |> Map.put("object", %{
  25. "type" => "Note",
  26. "id" => Pleroma.Web.ActivityPub.Utils.generate_object_id()
  27. })
  28. with_mock Pleroma.Web.ActivityPub.ObjectValidator, [:passthrough],
  29. validate: fn _, _ -> {:error, %Ecto.Changeset{}} end do
  30. assert {:cancel, {:error, %Ecto.Changeset{}}} =
  31. ReceiverWorker.perform(%Oban.Job{
  32. args: %{"op" => "incoming_ap_doc", "params" => params}
  33. })
  34. end
  35. end
  36. test "it does not retry duplicates" do
  37. params = insert(:note_activity).data
  38. assert {:cancel, :already_present} =
  39. ReceiverWorker.perform(%Oban.Job{
  40. args: %{"op" => "incoming_ap_doc", "params" => params}
  41. })
  42. end
  43. end