From 8ba6487b15fb29c7656dc429d6011a5497eb8458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Farkas?= Date: Tue, 24 Jun 2025 13:07:05 +0200 Subject: [PATCH] datasources: querier: add unit tests (#107105) --- pkg/registry/apis/query/parser_test.go | 85 ++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/pkg/registry/apis/query/parser_test.go b/pkg/registry/apis/query/parser_test.go index f43e5295631..8524a863168 100644 --- a/pkg/registry/apis/query/parser_test.go +++ b/pkg/registry/apis/query/parser_test.go @@ -67,6 +67,91 @@ func TestQuerySplitting(t *testing.T) { require.Equal(t, "0", split.Requests[0].Request.From) require.Equal(t, "0", split.Requests[0].Request.To) }) + + t.Run("forbid duplicate refId", func(t *testing.T) { + _, err := parser.parseRequest(ctx, &query.QueryDataRequest{ + QueryDataRequest: data.QueryDataRequest{ + TimeRange: data.TimeRange{}, + Queries: []data.DataQuery{ + { + CommonQueryProperties: data.CommonQueryProperties{ + RefID: "A", + Datasource: &data.DataSourceRef{ + Type: "x", + UID: "abc", + }, + }, + }, + { + CommonQueryProperties: data.CommonQueryProperties{ + RefID: "A", + Datasource: &data.DataSourceRef{ + Type: "x", + UID: "abc", + }, + }, + }, + }, + }, + }) + require.Error(t, err) + }) + t.Run("forbid duplicate refId, when refId=''", func(t *testing.T) { + _, err := parser.parseRequest(ctx, &query.QueryDataRequest{ + QueryDataRequest: data.QueryDataRequest{ + TimeRange: data.TimeRange{}, + Queries: []data.DataQuery{ + { + CommonQueryProperties: data.CommonQueryProperties{ + RefID: "", + Datasource: &data.DataSourceRef{ + Type: "x", + UID: "abc", + }, + }, + }, + { + CommonQueryProperties: data.CommonQueryProperties{ + RefID: "", + Datasource: &data.DataSourceRef{ + Type: "x", + UID: "abc", + }, + }, + }, + }, + }, + }) + require.Error(t, err) + }) + t.Run("allow empty refId", func(t *testing.T) { + _, err := parser.parseRequest(ctx, &query.QueryDataRequest{ + QueryDataRequest: data.QueryDataRequest{ + TimeRange: data.TimeRange{}, + Queries: []data.DataQuery{ + { + CommonQueryProperties: data.CommonQueryProperties{ + RefID: "", + Datasource: &data.DataSourceRef{ + Type: "x", + UID: "abc", + }, + }, + }, + { + CommonQueryProperties: data.CommonQueryProperties{ + RefID: "B", + Datasource: &data.DataSourceRef{ + Type: "x", + UID: "abc", + }, + }, + }, + }, + }, + }) + require.NoError(t, err) + }) t.Run("applies query time range if present", func(t *testing.T) { split, err := parser.parseRequest(ctx, &query.QueryDataRequest{ QueryDataRequest: data.QueryDataRequest{