.circleci
.dependabot
.github
app
bin
config
db
dist
lib
log
nanobox
public
spec
controllers
fabricators
features
fixtures
helpers
lib
mailers
models
policies
presenters
requests
routing
serializers
services
support
validators
views
workers
activitypub
scheduler
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
.sass-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
crowdin.yml
docker-compose.yml
package.json
postcss.config.js
priv-config
scalingo.json
yarn.lock
* Add structure for lists * Add list timeline streaming API * Add list APIs, bind list-account relation to follow relation * Add API for adding/removing accounts from lists * Add pagination to lists API * Add pagination to list accounts API * Adjust scopes for new APIs - Creating and modifying lists merely requires "write" scope - Fetching information about lists merely requires "read" scope * Add test for wrong user context on list timeline * Clean up tests
53 lines
1.7 KiB
Ruby
53 lines
1.7 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
describe FeedInsertWorker do
|
|
subject { described_class.new }
|
|
|
|
describe 'perform' do
|
|
let(:follower) { Fabricate(:account) }
|
|
let(:status) { Fabricate(:status) }
|
|
|
|
context 'when there are no records' do
|
|
it 'skips push with missing status' do
|
|
instance = double(push_to_home: nil)
|
|
allow(FeedManager).to receive(:instance).and_return(instance)
|
|
result = subject.perform(nil, follower.id)
|
|
|
|
expect(result).to eq true
|
|
expect(instance).not_to have_received(:push_to_home)
|
|
end
|
|
|
|
it 'skips push with missing account' do
|
|
instance = double(push_to_home: nil)
|
|
allow(FeedManager).to receive(:instance).and_return(instance)
|
|
result = subject.perform(status.id, nil)
|
|
|
|
expect(result).to eq true
|
|
expect(instance).not_to have_received(:push_to_home)
|
|
end
|
|
end
|
|
|
|
context 'when there are real records' do
|
|
it 'skips the push when there is a filter' do
|
|
instance = double(push_to_home: nil, filter?: true)
|
|
allow(FeedManager).to receive(:instance).and_return(instance)
|
|
result = subject.perform(status.id, follower.id)
|
|
|
|
expect(result).to be_nil
|
|
expect(instance).not_to have_received(:push_to_home)
|
|
end
|
|
|
|
it 'pushes the status onto the home timeline without filter' do
|
|
instance = double(push_to_home: nil, filter?: false)
|
|
allow(FeedManager).to receive(:instance).and_return(instance)
|
|
result = subject.perform(status.id, follower.id)
|
|
|
|
expect(result).to be_nil
|
|
expect(instance).to have_received(:push_to_home).with(follower, status)
|
|
end
|
|
end
|
|
end
|
|
end
|