Skip to content

Commit 444e219

Browse files
committed
Improve empty stream responses deserialization
1 parent 5dd7df9 commit 444e219

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

lib/redis.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3518,7 +3518,7 @@ def method_missing(command, *args) # rubocop:disable Style/MissingRespondToMissi
35183518

35193519
HashifyStreamEntries = lambda { |reply|
35203520
reply.compact.map do |entry_id, values|
3521-
[entry_id, values.each_slice(2).to_h]
3521+
[entry_id, values&.each_slice(2)&.to_h]
35223522
end
35233523
}
35243524

test/streams_test.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# frozen_string_literal: true
2+
3+
require_relative "helper"
4+
5+
class TestStreams < Minitest::Test
6+
include Helper::Client
7+
8+
def test_read_a_trimmed_entry
9+
r.xgroup(:create, 'k1', 'g1', '0', mkstream: true)
10+
entry_id = r.xadd('k1', { value: 'v1' })
11+
12+
assert_equal r.xreadgroup('g1', 'c1', 'k1', '>'), { 'k1' => [[entry_id, { 'value' => 'v1' }]] }
13+
assert_equal r.xreadgroup('g1', 'c1', 'k1', '0'), { 'k1' => [[entry_id, { 'value' => 'v1' }]] }
14+
r.xtrim('k1', 0)
15+
16+
assert_equal r.xreadgroup('g1', 'c1', 'k1', '0'), { 'k1' => [[entry_id, { 'value' => nil }]] }
17+
end
18+
end

0 commit comments

Comments
 (0)