diff --git a/lib/sidekiq_unique_jobs/lock/while_executing.rb b/lib/sidekiq_unique_jobs/lock/while_executing.rb index a7affb689..0aecf9a32 100644 --- a/lib/sidekiq_unique_jobs/lock/while_executing.rb +++ b/lib/sidekiq_unique_jobs/lock/while_executing.rb @@ -42,6 +42,7 @@ def execute(&block) with_logging_context do executed = locksmith.execute do yield + item[JID] ensure unlock_and_callback end diff --git a/spec/sidekiq_unique_jobs/lock/while_executing_spec.rb b/spec/sidekiq_unique_jobs/lock/while_executing_spec.rb index ba5448127..07a1d1373 100644 --- a/spec/sidekiq_unique_jobs/lock/while_executing_spec.rb +++ b/spec/sidekiq_unique_jobs/lock/while_executing_spec.rb @@ -91,10 +91,12 @@ it "reflects execution_failed" do process_one.execute do - process_two.execute { puts "BOGUS!" } - # NOTE: Below looks weird but tests that - # the result from process_two (which is nil) isn't considered. - jid_one + process_two.execute do + puts "BOGUS!" + nil + end + + nil end expect(process_one).not_to have_received(:reflect).with(:execution_failed, item_one) diff --git a/spec/sidekiq_unique_jobs/on_conflict/reject_spec.rb b/spec/sidekiq_unique_jobs/on_conflict/reject_spec.rb index 2d18938d6..aa86a7a38 100644 --- a/spec/sidekiq_unique_jobs/on_conflict/reject_spec.rb +++ b/spec/sidekiq_unique_jobs/on_conflict/reject_spec.rb @@ -13,8 +13,7 @@ end before do - allow(strategy).to receive(:deadset).and_return(deadset) - allow(strategy).to receive(:payload).and_return(payload) + allow(strategy).to receive_messages(deadset: deadset, payload: payload) end describe "#replace?" do diff --git a/spec/sidekiq_unique_jobs/on_conflict/replace_spec.rb b/spec/sidekiq_unique_jobs/on_conflict/replace_spec.rb index 9df1e6a89..5ca92d48f 100644 --- a/spec/sidekiq_unique_jobs/on_conflict/replace_spec.rb +++ b/spec/sidekiq_unique_jobs/on_conflict/replace_spec.rb @@ -33,9 +33,8 @@ let(:jid) { "bogus" } before do - allow(strategy).to receive(:delete_job_by_digest).and_return(jid) + allow(strategy).to receive_messages(delete_job_by_digest: jid, delete_lock: 9) allow(strategy).to receive(:log_info).and_call_original - allow(strategy).to receive(:delete_lock).and_return(9) end it "logs important information" do @@ -50,9 +49,8 @@ let(:jid) { "bogus" } before do - allow(strategy).to receive(:delete_job_by_digest).and_return(jid) + allow(strategy).to receive_messages(delete_job_by_digest: jid, delete_lock: nil) allow(strategy).to receive(:log_info).and_call_original - allow(strategy).to receive(:delete_lock).and_return(nil) end it "logs important information" do @@ -68,9 +66,8 @@ let(:block) { nil } before do - allow(strategy).to receive(:delete_job_by_digest).and_return(jid) + allow(strategy).to receive_messages(delete_job_by_digest: jid, delete_lock: nil) allow(strategy).to receive(:log_info).and_call_original - allow(strategy).to receive(:delete_lock).and_return(nil) end it "does not call block" do diff --git a/spec/sidekiq_unique_jobs/orphans/manager_spec.rb b/spec/sidekiq_unique_jobs/orphans/manager_spec.rb index 278d56ecc..70b4df47a 100644 --- a/spec/sidekiq_unique_jobs/orphans/manager_spec.rb +++ b/spec/sidekiq_unique_jobs/orphans/manager_spec.rb @@ -16,11 +16,9 @@ before do allow(SidekiqUniqueJobs::Orphans::Observer).to receive(:new).and_return(observer) - allow(described_class).to receive(:task).and_return(task) + allow(described_class).to receive_messages(task: task, log_info: nil) allow(task).to receive(:add_observer).with(observer) allow(task).to receive(:execute) - - allow(described_class).to receive(:log_info).and_return(nil) end context "when registered?" do @@ -72,11 +70,9 @@ before do allow(SidekiqUniqueJobs::Orphans::Observer).to receive(:new).and_return(observer) - allow(described_class).to receive(:task).and_return(task) + allow(described_class).to receive_messages(task: task, log_info: nil) allow(task).to receive(:add_observer).with(observer) allow(task).to receive(:execute) - - allow(described_class).to receive(:log_info).and_return(nil) end context "when unregistered?" do diff --git a/spec/sidekiq_unique_jobs/orphans/reaper_resurrector_spec.rb b/spec/sidekiq_unique_jobs/orphans/reaper_resurrector_spec.rb index 6bae0c6a2..14604185c 100644 --- a/spec/sidekiq_unique_jobs/orphans/reaper_resurrector_spec.rb +++ b/spec/sidekiq_unique_jobs/orphans/reaper_resurrector_spec.rb @@ -16,10 +16,8 @@ end before do - allow(described_class).to receive(:task).and_return(task) + allow(described_class).to receive_messages(task: task, log_info: nil) allow(task).to receive(:execute) - - allow(described_class).to receive(:log_info).and_return(nil) end context "when resurrector is disabled" do diff --git a/spec/support/shared_examples/an_executing_lock_with_error_handling.rb b/spec/support/shared_examples/an_executing_lock_with_error_handling.rb index 43e2afe7c..ea4ffca5a 100644 --- a/spec/support/shared_examples/an_executing_lock_with_error_handling.rb +++ b/spec/support/shared_examples/an_executing_lock_with_error_handling.rb @@ -10,8 +10,7 @@ before do allow(lock).to receive(:locked?).and_return(initially_locked?, locked?) - allow(lock).to receive(:unlock).and_return(true) - allow(lock).to receive(:delete).and_return(true) + allow(lock).to receive_messages(unlock: true, delete: true) allow(callback).to receive(:call).and_call_original allow(block).to receive(:call).and_call_original allow(lock).to receive(:log_warn)