preview_cards_vacuum_spec.rb 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. # frozen_string_literal: true
  2. require 'rails_helper'
  3. RSpec.describe Vacuum::PreviewCardsVacuum do
  4. subject { described_class.new(retention_period) }
  5. let(:retention_period) { 7.days }
  6. describe '#perform' do
  7. let!(:orphaned_preview_card) { Fabricate(:preview_card, created_at: 2.days.ago) }
  8. let!(:old_preview_card) { Fabricate(:preview_card, updated_at: (retention_period + 1.day).ago) }
  9. let!(:new_preview_card) { Fabricate(:preview_card) }
  10. before do
  11. old_preview_card.statuses << Fabricate(:status)
  12. new_preview_card.statuses << Fabricate(:status)
  13. subject.perform
  14. end
  15. it 'deletes cache of preview cards last updated before the retention period' do
  16. expect(old_preview_card.reload.image).to be_blank
  17. end
  18. it 'does not delete cache of preview cards last updated within the retention period' do
  19. expect(new_preview_card.reload.image).to_not be_blank
  20. end
  21. it 'does not delete attached preview cards' do
  22. expect(new_preview_card.reload).to be_persisted
  23. end
  24. it 'does not delete orphaned preview cards in the retention period' do
  25. expect(orphaned_preview_card.reload).to be_persisted
  26. end
  27. end
  28. end