github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/querier/queryrange/queryrangebase/series_test.go (about) 1 package queryrangebase 2 3 import ( 4 "testing" 5 6 "github.com/prometheus/prometheus/promql/parser" 7 "github.com/stretchr/testify/require" 8 9 "github.com/grafana/loki/pkg/logproto" 10 ) 11 12 func Test_ResponseToSamples(t *testing.T) { 13 input := &PrometheusResponse{ 14 Data: PrometheusData{ 15 ResultType: string(parser.ValueTypeMatrix), 16 Result: []SampleStream{ 17 { 18 Labels: []logproto.LabelAdapter{ 19 {Name: "a", Value: "a1"}, 20 {Name: "b", Value: "b1"}, 21 }, 22 Samples: []logproto.LegacySample{ 23 { 24 Value: 1, 25 TimestampMs: 1, 26 }, 27 { 28 Value: 2, 29 TimestampMs: 2, 30 }, 31 }, 32 }, 33 { 34 Labels: []logproto.LabelAdapter{ 35 {Name: "a", Value: "a1"}, 36 {Name: "b", Value: "b1"}, 37 }, 38 Samples: []logproto.LegacySample{ 39 { 40 Value: 8, 41 TimestampMs: 1, 42 }, 43 { 44 Value: 9, 45 TimestampMs: 2, 46 }, 47 }, 48 }, 49 }, 50 }, 51 } 52 53 stream, err := ResponseToSamples(input) 54 require.Nil(t, err) 55 set := NewSeriesSet(stream) 56 57 setCt := 0 58 59 for set.Next() { 60 iter := set.At().Iterator() 61 require.Nil(t, set.Err()) 62 63 sampleCt := 0 64 for iter.Next() { 65 ts, v := iter.At() 66 require.Equal(t, input.Data.Result[setCt].Samples[sampleCt].TimestampMs, ts) 67 require.Equal(t, input.Data.Result[setCt].Samples[sampleCt].Value, v) 68 sampleCt++ 69 } 70 require.Equal(t, len(input.Data.Result[setCt].Samples), sampleCt) 71 setCt++ 72 } 73 74 require.Equal(t, len(input.Data.Result), setCt) 75 76 }