Add: #518 コンテンツキャッシュについて、リアクションのあった投稿は削除しないオプション (#535)

* Add: #518 コンテンツキャッシュについて、リアクションのあった投稿は削除しないオプション

* Fix: 新規登録のテストが特定時刻で落ちる問題
This commit is contained in:
KMY(雪あすか) 2024-02-13 08:56:55 +09:00 committed by GitHub
parent ba776d3677
commit f2fb829e63
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 118 additions and 5 deletions

View file

@ -7,6 +7,7 @@ RSpec.describe Vacuum::StatusesVacuum do
let(:retention_period) { 7.days }
let(:local_account) { Fabricate(:account) }
let(:remote_account) { Fabricate(:account, domain: 'example.com') }
describe '#perform' do
@ -35,4 +36,57 @@ RSpec.describe Vacuum::StatusesVacuum do
expect { local_status_recent.reload }.to_not raise_error
end
end
describe '#perform with reaction' do
let!(:remote_status_old) { Fabricate(:status, account: remote_account, created_at: (retention_period + 2.days).ago) }
let!(:remote_status_old_faved_byl) { Fabricate(:status, account: remote_account, created_at: (retention_period + 2.days).ago) }
let!(:remote_status_old_faved_byr) { Fabricate(:status, account: remote_account, created_at: (retention_period + 2.days).ago) }
let!(:remote_status_old_bmed_byl) { Fabricate(:status, account: remote_account, created_at: (retention_period + 2.days).ago) }
let(:delete_content_cache_without_reaction) { true }
before do
Setting.delete_content_cache_without_reaction = delete_content_cache_without_reaction
Fabricate(:favourite, account: local_account, status: remote_status_old_faved_byl)
Fabricate(:favourite, account: remote_account, status: remote_status_old_faved_byr, uri: 'https://example.com/fav')
Fabricate(:bookmark, account: local_account, status: remote_status_old_bmed_byl)
subject.perform
end
it 'deletes remote statuses past the retention period' do
expect { remote_status_old.reload }.to raise_error ActiveRecord::RecordNotFound
end
it 'deletes remote statuses favourited by remote user' do
expect { remote_status_old_faved_byr.reload }.to raise_error ActiveRecord::RecordNotFound
end
it 'does not delete remote statuses favourited by local user' do
expect { remote_status_old_faved_byl.reload }.to_not raise_error
end
it 'does not delete remote statuses bookmarked by local user' do
expect { remote_status_old_bmed_byl.reload }.to_not raise_error
end
context 'when excepting is disabled' do
let(:delete_content_cache_without_reaction) { false }
it 'deletes remote statuses past the retention period' do
expect { remote_status_old.reload }.to raise_error ActiveRecord::RecordNotFound
end
it 'deletes remote statuses favourited by remote user' do
expect { remote_status_old_faved_byr.reload }.to raise_error ActiveRecord::RecordNotFound
end
it 'deletes remote statuses favourited by local user' do
expect { remote_status_old_faved_byl.reload }.to raise_error ActiveRecord::RecordNotFound
end
it 'deletes remote statuses bookmarked by local user' do
expect { remote_status_old_bmed_byl.reload }.to raise_error ActiveRecord::RecordNotFound
end
end
end
end