From cea0c7bcebc36c225af8ee7c9ab60d9373d8e22b Mon Sep 17 00:00:00 2001 From: Earlopain <14981592+Earlopain@users.noreply.github.com> Date: Wed, 16 Aug 2023 18:10:16 +0200 Subject: [PATCH] fix(web): don't show bogus lock digests (#804) Closes #761 --- lib/sidekiq_unique_jobs/digests.rb | 2 +- spec/sidekiq_unique_jobs/digests_spec.rb | 12 ++++++++++++ spec/sidekiq_unique_jobs/web_spec.rb | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/sidekiq_unique_jobs/digests.rb b/lib/sidekiq_unique_jobs/digests.rb index e10e371d5..881ab7da0 100644 --- a/lib/sidekiq_unique_jobs/digests.rb +++ b/lib/sidekiq_unique_jobs/digests.rb @@ -93,7 +93,7 @@ def page(cursor: 0, pattern: SCAN_PATTERN, page_size: 100) [ total_size.to_i, digests[0].to_i, # next_cursor - digests[1].map { |digest, score| Lock.new(digest, time: score) }, # entries + digests[1].each_slice(2).map { |digest, score| Lock.new(digest, time: score) }, # entries ] end end diff --git a/spec/sidekiq_unique_jobs/digests_spec.rb b/spec/sidekiq_unique_jobs/digests_spec.rb index 8a6984835..c6daf2f2b 100644 --- a/spec/sidekiq_unique_jobs/digests_spec.rb +++ b/spec/sidekiq_unique_jobs/digests_spec.rb @@ -141,4 +141,16 @@ ) end end + + describe "#page" do + include_context "with a regular job" + + it "returns the correct amount of results" do + total_size, _cursor, locks = digests.page(cursor: 0, page_size: 100, pattern: "*") + + expect(locks.size).to be(total_size) + expect(locks.size).to be(expected_keys.size) + expect(expected_keys.keys).to match_array(locks.map(&:key).map(&:digest)) + end + end end diff --git a/spec/sidekiq_unique_jobs/web_spec.rb b/spec/sidekiq_unique_jobs/web_spec.rb index 1cf40634c..f711f9f3c 100644 --- a/spec/sidekiq_unique_jobs/web_spec.rb +++ b/spec/sidekiq_unique_jobs/web_spec.rb @@ -119,7 +119,7 @@ def app get "/locks/#{digest_one}" expect(last_response).to be_ok - expect(last_response.body).to match("uniquejobs:9e9b5ce5d423d3ea470977004b50ff84") + expect(last_response.body).to match(digest_one) end it "can delete digest" do