Improve tests involving push_bulk (#17508)
sidekiq-bulk's push_bulk can either accept arguments directly or run them through a block. Setting expectations on the result of evaluating the blocks allows testing more code (the block itself) and the test is moved closer to the *interface* of the tested code than its precise implementation.
This commit is contained in:
parent
3dc1e3cfc3
commit
2af03164cb
8 changed files with 26 additions and 31 deletions
|
@ -10,13 +10,12 @@ describe ActivityPub::DistributePollUpdateWorker do
|
|||
|
||||
describe '#perform' do
|
||||
before do
|
||||
allow(ActivityPub::DeliveryWorker).to receive(:push_bulk)
|
||||
follower.follow!(account)
|
||||
end
|
||||
|
||||
it 'delivers to followers' do
|
||||
expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), account.id, 'http://example.com']])
|
||||
subject.perform(status.id)
|
||||
expect(ActivityPub::DeliveryWorker).to have_received(:push_bulk).with(['http://example.com'])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,7 +8,6 @@ describe ActivityPub::DistributionWorker do
|
|||
|
||||
describe '#perform' do
|
||||
before do
|
||||
allow(ActivityPub::DeliveryWorker).to receive(:push_bulk)
|
||||
follower.follow!(status.account)
|
||||
end
|
||||
|
||||
|
@ -18,8 +17,8 @@ describe ActivityPub::DistributionWorker do
|
|||
end
|
||||
|
||||
it 'delivers to followers' do
|
||||
expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), status.account.id, 'http://example.com', anything]])
|
||||
subject.perform(status.id)
|
||||
expect(ActivityPub::DeliveryWorker).to have_received(:push_bulk).with(['http://example.com'])
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -29,8 +28,8 @@ describe ActivityPub::DistributionWorker do
|
|||
end
|
||||
|
||||
it 'delivers to followers' do
|
||||
expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), status.account.id, 'http://example.com', anything]])
|
||||
subject.perform(status.id)
|
||||
expect(ActivityPub::DeliveryWorker).to have_received(:push_bulk).with(['http://example.com'])
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -43,8 +42,8 @@ describe ActivityPub::DistributionWorker do
|
|||
end
|
||||
|
||||
it 'delivers to mentioned accounts' do
|
||||
expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), status.account.id, 'https://foo.bar/inbox', anything]])
|
||||
subject.perform(status.id)
|
||||
expect(ActivityPub::DeliveryWorker).to have_received(:push_bulk).with(['https://foo.bar/inbox'])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,14 +9,16 @@ describe ActivityPub::MoveDistributionWorker do
|
|||
|
||||
describe '#perform' do
|
||||
before do
|
||||
allow(ActivityPub::DeliveryWorker).to receive(:push_bulk)
|
||||
follower.follow!(migration.account)
|
||||
blocker.block!(migration.account)
|
||||
end
|
||||
|
||||
it 'delivers to followers and known blockers' do
|
||||
expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [
|
||||
[kind_of(String), migration.account.id, 'http://example.com'],
|
||||
[kind_of(String), migration.account.id, 'http://example2.com']
|
||||
])
|
||||
subject.perform(migration.id)
|
||||
expect(ActivityPub::DeliveryWorker).to have_received(:push_bulk).with(['http://example.com', 'http://example2.com'])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -23,9 +23,7 @@ describe ActivityPub::StatusUpdateDistributionWorker do
|
|||
end
|
||||
|
||||
it 'delivers to followers' do
|
||||
expect(ActivityPub::DeliveryWorker).to receive(:push_bulk) do |items, &block|
|
||||
expect(items.map(&block)).to match([[kind_of(String), status.account.id, 'http://example.com', anything]])
|
||||
end
|
||||
expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), status.account.id, 'http://example.com', anything]])
|
||||
|
||||
subject.perform(status.id)
|
||||
end
|
||||
|
@ -37,9 +35,7 @@ describe ActivityPub::StatusUpdateDistributionWorker do
|
|||
end
|
||||
|
||||
it 'delivers to followers' do
|
||||
expect(ActivityPub::DeliveryWorker).to receive(:push_bulk) do |items, &block|
|
||||
expect(items.map(&block)).to match([[kind_of(String), status.account.id, 'http://example.com', anything]])
|
||||
end
|
||||
expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), status.account.id, 'http://example.com', anything]])
|
||||
|
||||
subject.perform(status.id)
|
||||
end
|
||||
|
|
|
@ -8,13 +8,12 @@ describe ActivityPub::UpdateDistributionWorker do
|
|||
|
||||
describe '#perform' do
|
||||
before do
|
||||
allow(ActivityPub::DeliveryWorker).to receive(:push_bulk)
|
||||
follower.follow!(account)
|
||||
end
|
||||
|
||||
it 'delivers to followers' do
|
||||
expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [[kind_of(String), account.id, 'http://example.com', anything]])
|
||||
subject.perform(account.id)
|
||||
expect(ActivityPub::DeliveryWorker).to have_received(:push_bulk).with(['http://example.com'])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue