diff --git a/lib/sidekiq_unique_jobs/digests.rb b/lib/sidekiq_unique_jobs/digests.rb index e10e371d..881ab7da 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 8a698483..c6daf2f2 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 1cf40634..f711f9f3 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