diff options
Diffstat (limited to 'test/workers')
| -rw-r--r-- | test/workers/cron/clear_oauth_token_worker_test.exs | 22 | ||||
| -rw-r--r-- | test/workers/cron/purge_expired_activities_worker_test.exs | 84 | ||||
| -rw-r--r-- | test/workers/purge_expired_activity_test.exs | 59 | ||||
| -rw-r--r-- | test/workers/purge_expired_token_test.exs | 51 | 
4 files changed, 110 insertions, 106 deletions
diff --git a/test/workers/cron/clear_oauth_token_worker_test.exs b/test/workers/cron/clear_oauth_token_worker_test.exs deleted file mode 100644 index 67836f34f..000000000 --- a/test/workers/cron/clear_oauth_token_worker_test.exs +++ /dev/null @@ -1,22 +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.ClearOauthTokenWorkerTest do -  use Pleroma.DataCase - -  import Pleroma.Factory -  alias Pleroma.Workers.Cron.ClearOauthTokenWorker - -  setup do: clear_config([:oauth2, :clean_expired_tokens]) - -  test "deletes expired tokens" do -    insert(:oauth_token, -      valid_until: NaiveDateTime.add(NaiveDateTime.utc_now(), -60 * 10) -    ) - -    Pleroma.Config.put([:oauth2, :clean_expired_tokens], true) -    ClearOauthTokenWorker.perform(%Oban.Job{}) -    assert Pleroma.Repo.all(Pleroma.Web.OAuth.Token) == [] -  end -end 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 diff --git a/test/workers/purge_expired_token_test.exs b/test/workers/purge_expired_token_test.exs new file mode 100644 index 000000000..fb7708c3f --- /dev/null +++ b/test/workers/purge_expired_token_test.exs @@ -0,0 +1,51 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Workers.PurgeExpiredTokenTest do +  use Pleroma.DataCase, async: true +  use Oban.Testing, repo: Pleroma.Repo + +  import Pleroma.Factory + +  setup do: clear_config([:oauth2, :clean_expired_tokens], true) + +  test "purges expired oauth token" do +    user = insert(:user) +    app = insert(:oauth_app) + +    {:ok, %{id: id}} = Pleroma.Web.OAuth.Token.create(app, user) + +    assert_enqueued( +      worker: Pleroma.Workers.PurgeExpiredToken, +      args: %{token_id: id, mod: Pleroma.Web.OAuth.Token} +    ) + +    assert {:ok, %{id: ^id}} = +             perform_job(Pleroma.Workers.PurgeExpiredToken, %{ +               token_id: id, +               mod: Pleroma.Web.OAuth.Token +             }) + +    assert Repo.aggregate(Pleroma.Web.OAuth.Token, :count, :id) == 0 +  end + +  test "purges expired mfa token" do +    authorization = insert(:oauth_authorization) + +    {:ok, %{id: id}} = Pleroma.MFA.Token.create(authorization.user, authorization) + +    assert_enqueued( +      worker: Pleroma.Workers.PurgeExpiredToken, +      args: %{token_id: id, mod: Pleroma.MFA.Token} +    ) + +    assert {:ok, %{id: ^id}} = +             perform_job(Pleroma.Workers.PurgeExpiredToken, %{ +               token_id: id, +               mod: Pleroma.MFA.Token +             }) + +    assert Repo.aggregate(Pleroma.MFA.Token, :count, :id) == 0 +  end +end  | 
