mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
QueryLibrary: Use default variable values in render (#84678)
This commit is contained in:
parent
7ad2ec9665
commit
d71266b8af
@ -43,7 +43,11 @@ func RenderTemplate(qt QueryTemplate, selectedValues map[string][]string) ([]Tar
|
|||||||
s = s[1 : len(s)-1]
|
s = s[1 : len(s)-1]
|
||||||
var offSet int64
|
var offSet int64
|
||||||
for _, r := range reps {
|
for _, r := range reps {
|
||||||
value := []rune(FormatVariables(r.format, selectedValues[r.Key]))
|
sV := selectedValues[r.Key]
|
||||||
|
if sV == nil {
|
||||||
|
sV = r.DefaultValues
|
||||||
|
}
|
||||||
|
value := []rune(FormatVariables(r.format, sV))
|
||||||
if r.Position == nil {
|
if r.Position == nil {
|
||||||
return nil, fmt.Errorf("nil position not support yet, will be full replacement")
|
return nil, fmt.Errorf("nil position not support yet, will be full replacement")
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,8 @@ var nestedFieldRender = QueryTemplate{
|
|||||||
Title: "Test",
|
Title: "Test",
|
||||||
Variables: []TemplateVariable{
|
Variables: []TemplateVariable{
|
||||||
{
|
{
|
||||||
Key: "metricName",
|
Key: "metricName",
|
||||||
|
DefaultValues: []string{"cow_count"},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Targets: []Target{
|
Targets: []Target{
|
||||||
@ -64,6 +65,30 @@ var nestedFieldRenderedTargets = []Target{
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var nestedFieldDefaultRenderedTargets = []Target{
|
||||||
|
{
|
||||||
|
DataType: data.FrameTypeUnknown,
|
||||||
|
Variables: map[string][]VariableReplacement{
|
||||||
|
"metricName": {
|
||||||
|
{
|
||||||
|
Path: "$.nestedObject.anArray[0]",
|
||||||
|
Position: &Position{
|
||||||
|
Start: 0,
|
||||||
|
End: 3,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//DataTypeVersion: data.FrameTypeVersion{0, 0},
|
||||||
|
Properties: apidata.NewDataQuery(
|
||||||
|
map[string]any{
|
||||||
|
"nestedObject": map[string]any{
|
||||||
|
"anArray": []any{"cow_count", .2},
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
func TestNestedFieldRender(t *testing.T) {
|
func TestNestedFieldRender(t *testing.T) {
|
||||||
rT, err := RenderTemplate(nestedFieldRender, map[string][]string{"metricName": {"up"}})
|
rT, err := RenderTemplate(nestedFieldRender, map[string][]string{"metricName": {"up"}})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
@ -73,6 +98,15 @@ func TestNestedFieldRender(t *testing.T) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNestedFieldDefaultsRender(t *testing.T) {
|
||||||
|
rT, err := RenderTemplate(nestedFieldRender, nil)
|
||||||
|
require.NoError(t, err)
|
||||||
|
require.Equal(t,
|
||||||
|
nestedFieldDefaultRenderedTargets,
|
||||||
|
rT,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
var multiVarTemplate = QueryTemplate{
|
var multiVarTemplate = QueryTemplate{
|
||||||
Title: "Test",
|
Title: "Test",
|
||||||
Variables: []TemplateVariable{
|
Variables: []TemplateVariable{
|
||||||
|
Loading…
Reference in New Issue
Block a user