diff options
Diffstat (limited to 'spec/support/helpers/idempotent_worker_helper.rb')
-rw-r--r-- | spec/support/helpers/idempotent_worker_helper.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/spec/support/helpers/idempotent_worker_helper.rb b/spec/support/helpers/idempotent_worker_helper.rb new file mode 100644 index 00000000000..b80758d10bd --- /dev/null +++ b/spec/support/helpers/idempotent_worker_helper.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module IdempotentWorkerHelper + WORKER_EXEC_TIMES = 2 + + def perform_multiple(args = [], worker: described_class.new, exec_times: WORKER_EXEC_TIMES) + Sidekiq::Testing.inline! do + job_args = args.nil? ? [nil] : Array.wrap(args) + + expect(worker).to receive(:perform).exactly(exec_times).and_call_original + + exec_times.times { worker.perform(*job_args) } + end + end +end |