.circleci
.github
app
bin
config
db
dist
lib
log
nanobox
public
spec
controllers
fabricators
features
fixtures
helpers
lib
mailers
models
policies
presenters
requests
routing
services
support
validators
views
workers
activitypub
pubsubhubbub
scheduler
feed_cleanup_scheduler_spec.rb
media_cleanup_scheduler_spec.rb
subscriptions_scheduler_spec.rb
after_remote_follow_request_worker_spec.rb
after_remote_follow_worker_spec.rb
digest_mailer_worker_spec.rb
domain_block_worker_spec.rb
feed_insert_worker_spec.rb
publish_scheduled_status_worker_spec.rb
regeneration_worker_spec.rb
rails_helper.rb
spec_helper.rb
streaming
vendor
.buildpacks
.codeclimate.yml
.dockerignore
.editorconfig
.env.nanobox
.env.production.sample
.env.test
.env.vagrant
.eslintignore
.eslintrc.js
.foreman
.gitattributes
.gitignore
.haml-lint.yml
.nanoignore
.nvmrc
.profile
.rspec
.rubocop.yml
.ruby-version
.scss-lint.yml
.slugignore
.yarnclean
AUTHORS.md
Aptfile
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
Capfile
Dockerfile
Gemfile
Gemfile.lock
LICENSE
Procfile
Procfile.dev
README.md
Rakefile
Vagrantfile
app.json
babel.config.js
boxfile.yml
config.ru
docker-compose.yml
jest.config.js
package.json
postcss.config.js
priv-config
scalingo.json
yarn.lock
* Clean up reblog-tracking sets from FeedManager Builds on #5419, with a few minor optimizations and cleanup of sets after they are no longer needed. * Update tests, fix multiply-reblogged case Previously, we would have lost the fact that a given status was reblogged if the displayed reblog of it was removed, now we don't. Also added tests to make sure FeedManager#trim cleans up our reblog tracking keys, fixed up FeedCleanupScheduler to use the right loop, and fixed the test for it.
27 lines
991 B
Ruby
27 lines
991 B
Ruby
require 'rails_helper'
|
|
|
|
describe Scheduler::FeedCleanupScheduler do
|
|
subject { described_class.new }
|
|
|
|
let!(:active_user) { Fabricate(:user, current_sign_in_at: 2.days.ago) }
|
|
let!(:inactive_user) { Fabricate(:user, current_sign_in_at: 22.days.ago) }
|
|
|
|
it 'clears feeds of inactives' do
|
|
Redis.current.zadd(feed_key_for(inactive_user), 1, 1)
|
|
Redis.current.zadd(feed_key_for(active_user), 1, 1)
|
|
Redis.current.zadd(feed_key_for(inactive_user, 'reblogs'), 2, 2)
|
|
Redis.current.sadd(feed_key_for(inactive_user, 'reblogs:2'), 3)
|
|
|
|
subject.perform
|
|
|
|
expect(Redis.current.zcard(feed_key_for(inactive_user))).to eq 0
|
|
expect(Redis.current.zcard(feed_key_for(active_user))).to eq 1
|
|
expect(Redis.current.exists(feed_key_for(inactive_user, 'reblogs'))).to be false
|
|
expect(Redis.current.exists(feed_key_for(inactive_user, 'reblogs:2'))).to be false
|
|
end
|
|
|
|
def feed_key_for(user, subtype = nil)
|
|
FeedManager.instance.key(:home, user.account_id, subtype)
|
|
end
|
|
end
|