Skip to content

Commit

Permalink
Add compiler pass test
Browse files Browse the repository at this point in the history
  • Loading branch information
spinillos authored and K-Phoen committed Sep 27, 2024
1 parent 6e2465b commit 4cd0697
Showing 1 changed file with 66 additions and 0 deletions.
66 changes: 66 additions & 0 deletions internal/ast/compiler/set_datasource_to_dataquery_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package compiler

import (
"fmt"
"testing"

"github.com/grafana/cog/internal/ast"
"github.com/grafana/cog/internal/testutils"
)

func TestSetDatasourceToDataQuery(t *testing.T) {
schemas := ast.Schemas{
&ast.Schema{
Package: "dashboard",
Objects: testutils.ObjectsMap(
ast.NewObject(dashboardPackage, dashboardDatasource, ast.NewStruct(
ast.NewStructField("Uid", ast.NewScalar(ast.KindString, ast.Nullable())),
ast.NewStructField("Type", ast.NewScalar(ast.KindString, ast.Nullable())),
)),
),
},
&ast.Schema{
Package: "no_dataquery",
Objects: testutils.ObjectsMap(
ast.NewObject("no_dataquery", datasourceName, ast.String()),
ast.NewObject("no_dataquery", dashboardDatasource, ast.String()),
),
},
&ast.Schema{
Package: "dataquery",
Metadata: ast.SchemaMeta{
Variant: ast.SchemaVariantDataQuery,
},
Objects: testutils.ObjectsMap(
ast.NewObject("dataquery", datasourceName, ast.Any()),
ast.NewObject("dataquery", "Query", ast.NewStruct(
ast.NewStructField("datasource", ast.NewRef("dataquery", datasourceName)),
ast.NewStructField("Type", ast.NewScalar(ast.KindString, ast.Nullable())),
)),
),
},
}

expected := ast.Schemas{
schemas[0],
schemas[1],
&ast.Schema{
Package: "dataquery",
Metadata: ast.SchemaMeta{
Variant: ast.SchemaVariantDataQuery,
},
Objects: testutils.ObjectsMap(
ast.NewObject("dataquery", "Query", ast.NewStruct(
ast.NewStructField(
"datasource",
ast.NewRef(dashboardPackage, dashboardDatasource),
ast.PassesTrail(fmt.Sprintf("SetDatasourceToDataquery[%s.%s]", dashboardPackage, dashboardDatasource)),
),
ast.NewStructField("Type", ast.NewScalar(ast.KindString, ast.Nullable())),
)),
),
},
}

runPassOnSchemas(t, &SetDatasourceToDataquery{}, schemas, expected)
}

0 comments on commit 4cd0697

Please sign in to comment.