0
0
Fork 0

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:
Claire 2022-02-10 19:42:45 +01:00 committed by GitHub
parent 3dc1e3cfc3
commit 2af03164cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 26 additions and 31 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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