grafana/pkg/tsdb/influxdb/flux/macros_test.go
Gábor Farkas 9f027e32b7
InfluxDB: Flux: make $__interval and $__interval_ms work in alerting (#38889)
* 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
2021-09-27 12:03:04 +02:00

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)
})
}
}