Skip to content

Commit d198094

Browse files
authored
experimental: conversion: improved tests (#1427)
1 parent 055dafe commit d198094

File tree

1 file changed

+76
-1
lines changed

1 file changed

+76
-1
lines changed

experimental/apis/data/v0alpha1/conversions_test.go

Lines changed: 76 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package v0alpha1
22

33
import (
4+
"encoding/json"
45
"testing"
56
"time"
67

@@ -54,7 +55,81 @@ func TestToBackendDataQueryJSON(t *testing.T) {
5455
require.Equal(t, time.UnixMilli(12345678).UTC(), bq.TimeRange.From)
5556
require.Equal(t, time.UnixMilli(87654321).UTC(), bq.TimeRange.To)
5657

57-
jsonData := `{"refId":"A","_timeRange":{"from":"12345678","to":"87654321"},"datasource":{"type":"prometheus","uid":"hello-world"},"queryType":"interesting","maxDataPoints":42,"intervalMs":15,"key1":"value1","key2":"value2"}`
58+
jsonData := `{` +
59+
`"refId":"A",` +
60+
`"_timeRange":{"from":"12345678","to":"87654321"},` +
61+
`"datasource":{"type":"prometheus","uid":"hello-world"},` +
62+
`"queryType":"interesting",` +
63+
`"maxDataPoints":42,` +
64+
`"intervalMs":15,` +
65+
`"key1":"value1",` +
66+
`"key2":"value2"` +
67+
`}`
5868

5969
require.Equal(t, jsonData, string(bq.JSON))
6070
}
71+
72+
func TestToDataSourceQueriesTimeRangeHandling(t *testing.T) {
73+
data := `
74+
{
75+
"queries": [
76+
{
77+
"datasource": {
78+
"type": "prometheus",
79+
"uid": "prom1"
80+
},
81+
"expr": "111",
82+
"refId": "A"
83+
},
84+
{
85+
"datasource": {
86+
"type": "prometheus",
87+
"uid": "prom1"
88+
},
89+
"expr": "222",
90+
"refId": "B",
91+
"timeRange": {
92+
"from": "1763114120000",
93+
"to": "1763114130000"
94+
}
95+
}
96+
],
97+
"from": "1763114100000",
98+
"to": "1763114110000"
99+
}
100+
`
101+
102+
var req QueryDataRequest
103+
104+
err := json.Unmarshal([]byte(data), &req)
105+
require.NoError(t, err)
106+
107+
queries, _, err := ToDataSourceQueries(req)
108+
require.NoError(t, err)
109+
110+
require.Len(t, queries, 2)
111+
112+
a := queries[0]
113+
require.Equal(t, "A", a.RefID)
114+
b := queries[1]
115+
require.Equal(t, "B", b.RefID)
116+
117+
require.Equal(t, time.UnixMilli(1763114100000).UTC(), a.TimeRange.From)
118+
require.Equal(t, time.UnixMilli(1763114110000).UTC(), a.TimeRange.To)
119+
jsonA := `{` +
120+
`"refId":"A",` +
121+
`"datasource":{"type":"prometheus","uid":"prom1"},` +
122+
`"expr":"111"` +
123+
`}`
124+
require.Equal(t, jsonA, string(a.JSON))
125+
126+
require.Equal(t, time.UnixMilli(1763114120000).UTC(), b.TimeRange.From)
127+
require.Equal(t, time.UnixMilli(1763114130000).UTC(), b.TimeRange.To)
128+
jsonB := `{` +
129+
`"refId":"B",` +
130+
`"_timeRange":{"from":"1763114120000","to":"1763114130000"},` +
131+
`"datasource":{"type":"prometheus","uid":"prom1"},` +
132+
`"expr":"222"` +
133+
`}`
134+
require.Equal(t, jsonB, string(b.JSON))
135+
}

0 commit comments

Comments
 (0)