mirror of
https://github.com/grafana/grafana.git
synced 2024-12-02 05:29:42 -06:00
9f027e32b7
* influxdb: flux: handle $__interval and $__interval_ms in alert-queries * influxdb: flux: do not handle interval-variable in the frontend * $__interval should be rounded * added comment
50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package flux
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/google/go-cmp/cmp"
|
|
"github.com/grafana/grafana-plugin-sdk-go/backend"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestInterpolate(t *testing.T) {
|
|
timeRange := backend.TimeRange{
|
|
From: time.Unix(1632305571, 310985041),
|
|
To: time.Unix(1632309171, 310985042),
|
|
}
|
|
|
|
options := queryOptions{
|
|
Organization: "grafana1",
|
|
Bucket: "grafana2",
|
|
DefaultBucket: "grafana3",
|
|
}
|
|
|
|
tests := []struct {
|
|
name string
|
|
before string
|
|
after string
|
|
}{
|
|
{
|
|
name: "interpolate flux variables",
|
|
before: `v.timeRangeStart, something.timeRangeStop, XYZ.bucket, uuUUu.defaultBucket, aBcDefG.organization, window.windowPeriod, a91{}.bucket, $__interval, $__interval_ms`,
|
|
after: `2021-09-22T10:12:51.310985041Z, 2021-09-22T11:12:51.310985042Z, "grafana2", "grafana3", "grafana1", 1m1.258s, a91{}.bucket, 1m, 61258`,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
query := queryModel{
|
|
RawQuery: tt.before,
|
|
Options: options,
|
|
TimeRange: timeRange,
|
|
MaxDataPoints: 1,
|
|
Interval: 61258 * 1000 * 1000,
|
|
}
|
|
interpolatedQuery := interpolate(query)
|
|
diff := cmp.Diff(tt.after, interpolatedQuery)
|
|
assert.Equal(t, "", diff)
|
|
})
|
|
}
|
|
}
|