Files
grafana/pkg/tsdb/cloudwatch/utils/metrics_test.go

48 lines
1.4 KiB
Go

package utils
import (
"testing"
"time"
"github.com/grafana/grafana-plugin-sdk-go/backend"
"github.com/stretchr/testify/require"
)
func TestBatchDataQueriesByTimeRange(t *testing.T) {
start := time.Date(2024, time.November, 29, 0, 42, 34, 0, time.UTC)
FiveMin := time.Date(2024, time.November, 29, 0, 47, 34, 0, time.UTC)
TenMin := time.Date(2024, time.November, 29, 0, 52, 34, 0, time.UTC)
loc := time.FixedZone("UTC+1", 1*60*60)
FiveMinDifferentZone := time.Date(2024, time.November, 29, 1, 47, 34, 0, loc)
testQueries := []backend.DataQuery{
{
RefID: "A",
TimeRange: backend.TimeRange{From: start, To: FiveMin},
},
{
RefID: "B",
TimeRange: backend.TimeRange{From: start, To: TenMin},
},
{
RefID: "C",
TimeRange: backend.TimeRange{From: start, To: FiveMinDifferentZone},
},
}
result := BatchDataQueriesByTimeRange(testQueries)
require.Equal(t, 2, len(result))
var FiveMinQueries = result[0]
var TenMinQueries = result[1]
// Since BatchDataQueriesByTimeRange uses a map, we don't known the return indices for the batches
if len(result[0]) == 1 {
TenMinQueries = result[0]
FiveMinQueries = result[1]
}
require.Equal(t, 2, len(FiveMinQueries))
require.Equal(t, "A", FiveMinQueries[0].RefID)
require.Equal(t, "C", FiveMinQueries[1].RefID)
require.Equal(t, 1, len(TenMinQueries))
require.Equal(t, "B", TenMinQueries[0].RefID)
}