1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2023 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
5 defmodule Pleroma.Workers.RemoteFetcherWorkerTest do
7 use Oban.Testing, repo: Pleroma.Repo
9 alias Pleroma.Workers.RemoteFetcherWorker
11 @deleted_object_one "https://deleted-404.example.com/"
12 @deleted_object_two "https://deleted-410.example.com/"
13 @unauthorized_object "https://unauthorized.example.com/"
14 @depth_object "https://depth.example.com/"
16 describe "RemoteFetcherWorker" do
19 %{method: :get, url: @deleted_object_one} ->
24 %{method: :get, url: @deleted_object_two} ->
29 %{method: :get, url: @unauthorized_object} ->
34 %{method: :get, url: @depth_object} ->
41 test "does not requeue a deleted object" do
42 assert {:discard, _} =
43 RemoteFetcherWorker.perform(%Oban.Job{
44 args: %{"op" => "fetch_remote", "id" => @deleted_object_one}
47 assert {:discard, _} =
48 RemoteFetcherWorker.perform(%Oban.Job{
49 args: %{"op" => "fetch_remote", "id" => @deleted_object_two}
53 test "does not requeue an unauthorized object" do
54 assert {:discard, _} =
55 RemoteFetcherWorker.perform(%Oban.Job{
56 args: %{"op" => "fetch_remote", "id" => @unauthorized_object}
60 test "does not requeue an object that exceeded depth" do
61 clear_config([:instance, :federation_incoming_replies_max_depth], 0)
63 assert {:discard, _} =
64 RemoteFetcherWorker.perform(%Oban.Job{
65 args: %{"op" => "fetch_remote", "id" => @depth_object, "depth" => 1}