summaryrefslogtreecommitdiff
path: root/test/workers
diff options
context:
space:
mode:
Diffstat (limited to 'test/workers')
-rw-r--r--test/workers/cron/clear_oauth_token_worker_test.exs22
-rw-r--r--test/workers/cron/purge_expired_activities_worker_test.exs84
-rw-r--r--test/workers/purge_expired_activity_test.exs59
-rw-r--r--test/workers/purge_expired_token_test.exs51
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