akkoma/test/pleroma/activity/pruner_test.exs
Oneric 1a7839eaf2
Some checks failed
ci/woodpecker/pr/lint Pipeline was successful
ci/woodpecker/pr/test Pipeline failed
ci/woodpecker/pr/build-arm64 unknown status
ci/woodpecker/pr/build-amd64 unknown status
ci/woodpecker/pr/docs unknown status
Prune old Update activities
Once processed they serve no purpose anymore afaict.
Therefor, lets prune them like other transient activities
to not unnecessarily bloat the table.
2024-02-17 16:57:40 +01:00

94 lines
2.4 KiB
Elixir

defmodule Pleroma.Activity.PrunerTest do
use Pleroma.DataCase, async: true
alias Pleroma.Activity
alias Pleroma.Activity.Pruner
import Pleroma.Factory
describe "prune_transient_activities" do
test "it prunes old transient activities" do
user = insert(:user)
old_time = DateTime.utc_now() |> DateTime.add(-31 * 24, :hour)
new_delete = insert(:delete_activity, type: "Delete", user: user)
old_delete =
insert(:delete_activity,
user: user,
inserted_at: old_time
)
new_update = insert(:update_activity, type: "Update", user: user)
old_update =
insert(:update_activity,
type: "Update",
user: user,
inserted_at: old_time
)
new_undo = insert(:undo_activity)
old_undo = insert(:undo_activity, inserted_at: old_time)
new_remove = insert(:remove_activity)
old_remove = insert(:remove_activity, inserted_at: old_time)
Pruner.prune_deletes()
Pruner.prune_updates()
Pruner.prune_undos()
Pruner.prune_removes()
assert Activity.get_by_id(new_delete.id)
refute Activity.get_by_id(old_delete.id)
assert Activity.get_by_id(new_update.id)
refute Activity.get_by_id(old_update.id)
assert Activity.get_by_id(new_undo.id)
refute Activity.get_by_id(old_undo.id)
assert Activity.get_by_id(new_remove.id)
refute Activity.get_by_id(old_remove.id)
end
end
describe "prune_stale_follow_requests" do
test "it prunes old follow requests" do
follower = insert(:user)
followee = insert(:user)
new_follow_request =
insert(
:follow_activity,
follower: follower,
followed: followee,
state: "reject"
)
old_not_rejected_request =
insert(:follow_activity,
follower: follower,
followed: followee,
state: "pending",
inserted_at: DateTime.utc_now() |> DateTime.add(-31 * 24, :hour)
)
old_follow_request =
insert(:follow_activity,
follower: follower,
followed: followee,
inserted_at: DateTime.utc_now() |> DateTime.add(-31 * 24, :hour),
state: "reject"
)
Pruner.prune_stale_follow_requests()
assert Activity.get_by_id(new_follow_request.id)
assert Activity.get_by_id(old_not_rejected_request.id)
refute Activity.get_by_id(old_follow_request.id)
end
end
end