Skip to content

Commit 8886c47

Browse files
committed
adding tests for scalar arrys
1 parent 23a3efd commit 8886c47

File tree

2 files changed

+50
-1
lines changed

2 files changed

+50
-1
lines changed

pkg/redis-json.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ func queryJsonGet(qm queryModel, client redisClient) backend.DataResponse {
139139
case float64:
140140
fields[i] = data.NewField(i, nil, []float64{})
141141
for j := 0; j < rowscount-1; j++ {
142-
fields[i].Append(0)
142+
fields[i].Append(float64(0))
143143
}
144144
}
145145
frame.Fields = append(frame.Fields, fields[i])

pkg/redis-json_test.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,55 @@ func TestQueryJsonObjKeys(t *testing.T) {
160160
func TestQueryJsonGet(t *testing.T) {
161161
t.Parallel()
162162

163+
t.Run("Should return four strings in frame", func(t *testing.T) {
164+
t.Parallel()
165+
166+
client := testClient{rcv: "[[],\"gin\",\"rum\",\"whiskey\"]"}
167+
168+
resp := queryJsonGet(queryModel{Command: models.JsonGet, Key: "test:json", Path: "$.num"}, &client)
169+
170+
require.Len(t, resp.Frames, 1)
171+
require.Len(t, resp.Frames[0].Fields, 1)
172+
require.Equal(t, resp.Frames[0].Fields[0].Len(), 4)
173+
require.Equal(t, resp.Frames[0].Fields[0].At(0), "")
174+
require.Equal(t, resp.Frames[0].Fields[0].At(1), "gin")
175+
require.Equal(t, resp.Frames[0].Fields[0].At(2), "rum")
176+
require.Equal(t, resp.Frames[0].Fields[0].At(3), "whiskey")
177+
})
178+
179+
t.Run("Should return four booleans in frame", func(t *testing.T) {
180+
t.Parallel()
181+
182+
client := testClient{rcv: "[[],true,false,true]"}
183+
184+
resp := queryJsonGet(queryModel{Command: models.JsonGet, Key: "test:json", Path: "$.num"}, &client)
185+
186+
require.Len(t, resp.Frames, 1)
187+
require.Len(t, resp.Frames[0].Fields, 1)
188+
require.Equal(t, resp.Frames[0].Fields[0].Len(), 4)
189+
require.Equal(t, resp.Frames[0].Fields[0].At(0), false)
190+
require.Equal(t, resp.Frames[0].Fields[0].At(1), true)
191+
require.Equal(t, resp.Frames[0].Fields[0].At(2), false)
192+
require.Equal(t, resp.Frames[0].Fields[0].At(3), true)
193+
})
194+
195+
t.Run("Should return four float64 in frame", func(t *testing.T) {
196+
t.Parallel()
197+
198+
client := testClient{rcv: "[[],42,43,44]"}
199+
200+
resp := queryJsonGet(queryModel{Command: models.JsonGet, Key: "test:json", Path: "$.num"}, &client)
201+
202+
require.Len(t, resp.Frames, 1)
203+
require.Len(t, resp.Frames[0].Fields, 1)
204+
require.Equal(t, resp.Frames[0].Fields[0].Len(), 4)
205+
require.Equal(t, resp.Frames[0].Fields[0].At(0), float64(0))
206+
require.Equal(t, resp.Frames[0].Fields[0].At(1), float64(42))
207+
require.Equal(t, resp.Frames[0].Fields[0].At(2), float64(43))
208+
require.Equal(t, resp.Frames[0].Fields[0].At(3), float64(44))
209+
210+
})
211+
163212
t.Run("Should return a single float64 in frame", func(t *testing.T) {
164213
t.Parallel()
165214

0 commit comments

Comments
 (0)