diff --git a/lib/sidekiq_unique_jobs/middleware/server/unique_jobs.rb b/lib/sidekiq_unique_jobs/middleware/server/unique_jobs.rb index e8956170f..645c92812 100644 --- a/lib/sidekiq_unique_jobs/middleware/server/unique_jobs.rb +++ b/lib/sidekiq_unique_jobs/middleware/server/unique_jobs.rb @@ -13,7 +13,7 @@ def call(worker, item, _queue, redis_pool = nil) decide_unlock_order(worker.class) lock_key = payload_hash(item) - unlocked = before_yield? ? unlock(lock_key).inspect : 0 + unlock(lock_key) if before_yield? yield rescue Sidekiq::Shutdown diff --git a/spec/lib/middleware/server/unique_jobs_spec.rb b/spec/lib/middleware/server/unique_jobs_spec.rb index cc9ce3a30..c05efe561 100644 --- a/spec/lib/middleware/server/unique_jobs_spec.rb +++ b/spec/lib/middleware/server/unique_jobs_spec.rb @@ -21,8 +21,10 @@ module Server end it 'returns true when unique_unlock_order has been set' do - UniqueWorker.sidekiq_options unique_unlock_order: :before_yield - expect(subject.unlock_order_configured?(UniqueWorker)) + test_worker_class = UniqueWorker.dup + test_worker_class.sidekiq_options unique_unlock_order: :before_yield + + expect(subject.unlock_order_configured?(test_worker_class)) .to eq(true) end end @@ -30,9 +32,11 @@ module Server describe '#decide_unlock_order' do context 'when worker has specified unique_unlock_order' do it 'changes unlock_order to the configured value' do - UniqueWorker.sidekiq_options unique_unlock_order: :before_yield + test_worker_class = UniqueWorker.dup + test_worker_class.sidekiq_options unique_unlock_order: :before_yield + expect do - subject.decide_unlock_order(UniqueWorker) + subject.decide_unlock_order(test_worker_class) end.to change { subject.unlock_order }.to :before_yield end end @@ -40,6 +44,7 @@ module Server context "when worker hasn't specified unique_unlock_order" do it 'falls back to configured default_unlock_order' do SidekiqUniqueJobs.config.default_unlock_order = :before_yield + expect do subject.decide_unlock_order(UniqueWorker) end.to change { subject.unlock_order }.to :before_yield