diff options
Diffstat (limited to 'spec/workers')
-rw-r--r-- | spec/workers/concerns/waitable_worker_spec.rb | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/spec/workers/concerns/waitable_worker_spec.rb b/spec/workers/concerns/waitable_worker_spec.rb index 37fadd6ac02..1d76480ccb0 100644 --- a/spec/workers/concerns/waitable_worker_spec.rb +++ b/spec/workers/concerns/waitable_worker_spec.rb @@ -44,11 +44,35 @@ describe WaitableWorker do expect(worker.counter).to eq(6) end - it 'runs > 3 jobs using sidekiq' do + it 'runs > 3 jobs using sidekiq and a waiter key' do expect(worker).to receive(:bulk_perform_async) + .with([[1, anything], [2, anything], [3, anything], [4, anything]]) worker.bulk_perform_and_wait([[1], [2], [3], [4]]) end + + it 'runs > 10 * timeout jobs using sidekiq and no waiter key' do + arguments = 1.upto(21).map { |i| [i] } + + expect(worker).to receive(:bulk_perform_async).with(arguments) + + worker.bulk_perform_and_wait(arguments, timeout: 2) + end + + context 'when the skip_job_waiter_for_large_batches flag is disabled' do + before do + stub_feature_flags(skip_job_waiter_for_large_batches: false) + end + + it 'runs jobs over 10 * the timeout using a waiter key' do + arguments = 1.upto(21).map { |i| [i] } + arguments_with_waiter = arguments.map { |arg| arg + [anything] } + + expect(worker).to receive(:bulk_perform_async).with(arguments_with_waiter) + + worker.bulk_perform_and_wait(arguments, timeout: 2) + end + end end describe '.bulk_perform_inline' do |