aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/activity_expiration_test.exs21
-rw-r--r--test/activity_test.exs9
-rw-r--r--test/support/factory.ex19
3 files changed, 48 insertions, 1 deletions
diff --git a/test/activity_expiration_test.exs b/test/activity_expiration_test.exs
new file mode 100644
index 000000000..20566a186
--- /dev/null
+++ b/test/activity_expiration_test.exs
@@ -0,0 +1,21 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.ActivityExpirationTest do
+ use Pleroma.DataCase
+ alias Pleroma.ActivityExpiration
+ import Pleroma.Factory
+
+ test "finds activities due to be deleted only" do
+ activity = insert(:note_activity)
+ expiration_due = insert(:expiration_in_the_past, %{activity_id: activity.id})
+ activity2 = insert(:note_activity)
+ insert(:expiration_in_the_future, %{activity_id: activity2.id})
+
+ expirations = ActivityExpiration.due_expirations()
+
+ assert length(expirations) == 1
+ assert hd(expirations) == expiration_due
+ end
+end
diff --git a/test/activity_test.exs b/test/activity_test.exs
index b27f6fd36..785c4b3cf 100644
--- a/test/activity_test.exs
+++ b/test/activity_test.exs
@@ -164,4 +164,13 @@ defmodule Pleroma.ActivityTest do
Pleroma.Config.put([:instance, :limit_to_local_content], :unauthenticated)
end
end
+
+ test "add an activity with an expiration" do
+ activity = insert(:note_activity)
+ insert(:expiration_in_the_future, %{activity_id: activity.id})
+
+ Pleroma.ActivityExpiration
+ |> where([a], a.activity_id == ^activity.id)
+ |> Repo.one!()
+ end
end
diff --git a/test/support/factory.ex b/test/support/factory.ex
index c751546ce..7b52b1328 100644
--- a/test/support/factory.ex
+++ b/test/support/factory.ex
@@ -1,5 +1,5 @@
# Pleroma: A lightweight social networking server
-# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Factory do
@@ -142,6 +142,23 @@ defmodule Pleroma.Factory do
|> Map.merge(attrs)
end
+ defp expiration_offset_by_minutes(attrs, minutes) do
+ %Pleroma.ActivityExpiration{}
+ |> Map.merge(attrs)
+ |> Map.put(
+ :scheduled_at,
+ NaiveDateTime.add(NaiveDateTime.utc_now(), :timer.minutes(minutes), :millisecond)
+ )
+ end
+
+ def expiration_in_the_past_factory(attrs \\ %{}) do
+ expiration_offset_by_minutes(attrs, -60)
+ end
+
+ def expiration_in_the_future_factory(attrs \\ %{}) do
+ expiration_offset_by_minutes(attrs, 60)
+ end
+
def article_activity_factory do
article = insert(:article)