don't expire pinned posts
[akkoma] / test / workers / purge_expired_activity_test.exs
index 8b5dc9fd208d694d64cbd90f772fe35f3a3c4844..736d7d5673e4bbf7dc847b8cd19a13f35dd92306 100644 (file)
@@ -44,4 +44,25 @@ defmodule Pleroma.Workers.PurgeExpiredActivityTest do
 
     assert %Oban.Job{} = Pleroma.Workers.PurgeExpiredActivity.get_expiration(activity.id)
   end
+
+  test "don't delete pinned posts, schedule deletion on next day" do
+    activity = insert(:note_activity)
+
+    assert {:ok, _} =
+             PurgeExpiredActivity.enqueue(%{
+               activity_id: activity.id,
+               expires_at: DateTime.utc_now(),
+               validate: false
+             })
+
+    user = Pleroma.User.get_by_ap_id(activity.actor)
+    {:ok, activity} = Pleroma.Web.CommonAPI.pin(activity.id, user)
+
+    assert %{success: 1, failure: 0} ==
+             Oban.drain_queue(queue: :activity_expiration, with_scheduled: true)
+
+    job = Pleroma.Workers.PurgeExpiredActivity.get_expiration(activity.id)
+
+    assert DateTime.diff(job.scheduled_at, DateTime.add(DateTime.utc_now(), 24 * 3600)) in [0, 1]
+  end
 end