diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2022-09-27 03:08:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-27 03:08:19 +0200 |
commit | 5c9abdeff1d0cf3e14d84c5ae298e6a5beccaf18 (patch) | |
tree | b4bad153eec9f2a39d96a9da342e1618ac43740b /spec/lib/vacuum/feeds_vacuum_spec.rb | |
parent | 3e0999cd1139d638332d62129dbf0b37263802fd (diff) |
Add retention policy for cached content and media (#19232)
Diffstat (limited to 'spec/lib/vacuum/feeds_vacuum_spec.rb')
-rw-r--r-- | spec/lib/vacuum/feeds_vacuum_spec.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/spec/lib/vacuum/feeds_vacuum_spec.rb b/spec/lib/vacuum/feeds_vacuum_spec.rb new file mode 100644 index 000000000..0aec26740 --- /dev/null +++ b/spec/lib/vacuum/feeds_vacuum_spec.rb @@ -0,0 +1,30 @@ +require 'rails_helper' + +RSpec.describe Vacuum::FeedsVacuum do + subject { described_class.new } + + describe '#perform' do + let!(:active_user) { Fabricate(:user, current_sign_in_at: 2.days.ago) } + let!(:inactive_user) { Fabricate(:user, current_sign_in_at: 22.days.ago) } + + before do + redis.zadd(feed_key_for(inactive_user), 1, 1) + redis.zadd(feed_key_for(active_user), 1, 1) + redis.zadd(feed_key_for(inactive_user, 'reblogs'), 2, 2) + redis.sadd(feed_key_for(inactive_user, 'reblogs:2'), 3) + + subject.perform + end + + it 'clears feeds of inactive users and lists' do + expect(redis.zcard(feed_key_for(inactive_user))).to eq 0 + expect(redis.zcard(feed_key_for(active_user))).to eq 1 + expect(redis.exists?(feed_key_for(inactive_user, 'reblogs'))).to be false + expect(redis.exists?(feed_key_for(inactive_user, 'reblogs:2'))).to be false + end + end + + def feed_key_for(user, subtype = nil) + FeedManager.instance.key(:home, user.account_id, subtype) + end +end |