diff --git a/lib/sidekiq_unique_jobs/locksmith.rb b/lib/sidekiq_unique_jobs/locksmith.rb index 0628f830..f25f59a8 100644 --- a/lib/sidekiq_unique_jobs/locksmith.rb +++ b/lib/sidekiq_unique_jobs/locksmith.rb @@ -81,7 +81,7 @@ def delete # Deletes the lock regardless of if it has a pttl set # def delete! - call_script(:delete, key.to_a, [job_id, config.pttl, config.type, config.limit]).positive? + call_script(:delete, key.to_a, [job_id, config.pttl, config.type, config.limit]).to_i.positive? end # diff --git a/spec/sidekiq_unique_jobs/locksmith_spec.rb b/spec/sidekiq_unique_jobs/locksmith_spec.rb index b8f5c17d..12224cb9 100644 --- a/spec/sidekiq_unique_jobs/locksmith_spec.rb +++ b/spec/sidekiq_unique_jobs/locksmith_spec.rb @@ -181,6 +181,14 @@ expect(locksmith_one).not_to be_locked end + it "allows deletion when call script returns a string" do + locksmith_one.lock + allow(locksmith_one).to receive(:call_script).and_return("120") + locksmith_two.delete! + + expect(locksmith_one).not_to be_locked + end + context "when lock_timeout is zero" do let(:lock_timeout) { 0 }