Once processed they serve no purpose anymore afaict. Therefor, lets prune them like other transient activities to not unnecessarily bloat the table.
		
			
				
	
	
		
			93 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			93 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
 |