Fix: アンテナに登録された投稿がアンテナ削除時Redisから削除されない問題 (#417)

* Fix: アンテナに登録された投稿がRedisから削除されない問題

* Fix test

* Tootctlに変更

* 処理を共通化
This commit is contained in:
KMY(雪あすか) 2024-01-04 15:28:22 +09:00 committed by GitHub
parent 5d8a9f4757
commit 98753287ac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 293 additions and 1 deletions

View file

@ -8,12 +8,16 @@ RSpec.describe Vacuum::FeedsVacuum do
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) }
let!(:list) { Fabricate(:list, account: inactive_user.account) }
let!(:antenna) { Fabricate(:antenna, account: inactive_user.account) }
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)
redis.zadd(list_key_for(list), 1, 1)
redis.zadd(antenna_key_for(antenna), 1, 1)
subject.perform
end
@ -23,10 +27,20 @@ RSpec.describe Vacuum::FeedsVacuum do
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
expect(redis.zcard(list_key_for(list))).to eq 0
expect(redis.zcard(antenna_key_for(antenna))).to eq 0
end
end
def feed_key_for(user, subtype = nil)
FeedManager.instance.key(:home, user.account_id, subtype)
end
def list_key_for(list)
FeedManager.instance.key(:list, list.id)
end
def antenna_key_for(antenna)
FeedManager.instance.key(:antenna, antenna.id)
end
end