diff options
Diffstat (limited to 'test/workers')
| -rw-r--r-- | test/workers/cron/purge_expired_activities_worker_test.exs | 84 | ||||
| -rw-r--r-- | test/workers/purge_expired_activity_test.exs | 59 | 
2 files changed, 59 insertions, 84 deletions
diff --git a/test/workers/cron/purge_expired_activities_worker_test.exs b/test/workers/cron/purge_expired_activities_worker_test.exs deleted file mode 100644 index d1acd9ae6..000000000 --- a/test/workers/cron/purge_expired_activities_worker_test.exs +++ /dev/null @@ -1,84 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Workers.Cron.PurgeExpiredActivitiesWorkerTest do -  use Pleroma.DataCase - -  alias Pleroma.ActivityExpiration -  alias Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker - -  import Pleroma.Factory -  import ExUnit.CaptureLog - -  setup do -    clear_config([ActivityExpiration, :enabled]) -  end - -  test "deletes an expiration activity" do -    Pleroma.Config.put([ActivityExpiration, :enabled], true) -    activity = insert(:note_activity) - -    naive_datetime = -      NaiveDateTime.add( -        NaiveDateTime.utc_now(), -        -:timer.minutes(2), -        :millisecond -      ) - -    expiration = -      insert( -        :expiration_in_the_past, -        %{activity_id: activity.id, scheduled_at: naive_datetime} -      ) - -    Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker.perform(%Oban.Job{}) - -    refute Pleroma.Repo.get(Pleroma.Activity, activity.id) -    refute Pleroma.Repo.get(Pleroma.ActivityExpiration, expiration.id) -  end - -  test "works with ActivityExpirationPolicy" do -    Pleroma.Config.put([ActivityExpiration, :enabled], true) - -    clear_config([:mrf, :policies], Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy) - -    user = insert(:user) - -    days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365) - -    {:ok, %{id: id} = activity} = Pleroma.Web.CommonAPI.post(user, %{status: "cofe"}) - -    past_date = -      NaiveDateTime.utc_now() |> Timex.shift(days: -days) |> NaiveDateTime.truncate(:second) - -    activity -    |> Repo.preload(:expiration) -    |> Map.get(:expiration) -    |> Ecto.Changeset.change(%{scheduled_at: past_date}) -    |> Repo.update!() - -    Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker.perform(%Oban.Job{}) - -    assert [%{data: %{"type" => "Delete", "deleted_activity_id" => ^id}}] = -             Pleroma.Repo.all(Pleroma.Activity) -  end - -  describe "delete_activity/1" do -    test "adds log message if activity isn't find" do -      assert capture_log([level: :error], fn -> -               PurgeExpiredActivitiesWorker.delete_activity(%ActivityExpiration{ -                 activity_id: "test-activity" -               }) -             end) =~ "Couldn't delete expired activity: not found activity" -    end - -    test "adds log message if actor isn't find" do -      assert capture_log([level: :error], fn -> -               PurgeExpiredActivitiesWorker.delete_activity(%ActivityExpiration{ -                 activity_id: "test-activity" -               }) -             end) =~ "Couldn't delete expired activity: not found activity" -    end -  end -end diff --git a/test/workers/purge_expired_activity_test.exs b/test/workers/purge_expired_activity_test.exs new file mode 100644 index 000000000..b5938776d --- /dev/null +++ b/test/workers/purge_expired_activity_test.exs @@ -0,0 +1,59 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Workers.PurgeExpiredActivityTest do +  use Pleroma.DataCase, async: true +  use Oban.Testing, repo: Pleroma.Repo + +  import Pleroma.Factory + +  alias Pleroma.Workers.PurgeExpiredActivity + +  test "enqueue job" do +    activity = insert(:note_activity) + +    assert {:ok, _} = +             PurgeExpiredActivity.enqueue(%{ +               activity_id: activity.id, +               expires_at: DateTime.add(DateTime.utc_now(), 3601) +             }) + +    assert_enqueued( +      worker: Pleroma.Workers.PurgeExpiredActivity, +      args: %{activity_id: activity.id} +    ) + +    assert {:ok, _} = +             perform_job(Pleroma.Workers.PurgeExpiredActivity, %{activity_id: activity.id}) + +    assert %Oban.Job{} = Pleroma.Workers.PurgeExpiredActivity.get_expiration(activity.id) +  end + +  test "error if user was not found" do +    activity = insert(:note_activity) + +    assert {:ok, _} = +             PurgeExpiredActivity.enqueue(%{ +               activity_id: activity.id, +               expires_at: DateTime.add(DateTime.utc_now(), 3601) +             }) + +    user = Pleroma.User.get_by_ap_id(activity.actor) +    Pleroma.Repo.delete(user) + +    assert {:error, :user_not_found} = +             perform_job(Pleroma.Workers.PurgeExpiredActivity, %{activity_id: activity.id}) +  end + +  test "error if actiivity was not found" do +    assert {:ok, _} = +             PurgeExpiredActivity.enqueue(%{ +               activity_id: "some_id", +               expires_at: DateTime.add(DateTime.utc_now(), 3601) +             }) + +    assert {:error, :activity_not_found} = +             perform_job(Pleroma.Workers.PurgeExpiredActivity, %{activity_id: "some_if"}) +  end +end  | 
