Search: Allow query field selection (#116238)
This commit is contained in:
@@ -97,7 +97,7 @@ func TestIntegrationSearchDevDashboards(t *testing.T) {
|
||||
require.Equal(t, 16, fileCount, "file count from %s", devenv)
|
||||
|
||||
// Helper to call search
|
||||
callSearch := func(user apis.User, params string) dashboardV0.SearchResults {
|
||||
callSearch := func(user apis.User, params map[string]string) dashboardV0.SearchResults {
|
||||
require.NotNil(t, user)
|
||||
ns := user.Identity.GetNamespace()
|
||||
cfg := dynamic.ConfigFor(user.NewRestConfig())
|
||||
@@ -107,17 +107,12 @@ func TestIntegrationSearchDevDashboards(t *testing.T) {
|
||||
|
||||
var statusCode int
|
||||
req := restClient.Get().AbsPath("apis", "dashboard.grafana.app", "v0alpha1", "namespaces", ns, "search").
|
||||
//Param("explain", "true") // helpful to understand which field made things match
|
||||
Param("limit", "1000").
|
||||
Param("type", "dashboard") // Only search dashboards
|
||||
|
||||
for kv := range strings.SplitSeq(params, "&") {
|
||||
if kv == "" {
|
||||
continue
|
||||
}
|
||||
parts := strings.SplitN(kv, "=", 2)
|
||||
if len(parts) == 2 {
|
||||
req = req.Param(parts[0], parts[1])
|
||||
}
|
||||
for k, v := range params {
|
||||
req = req.Param(k, v)
|
||||
}
|
||||
res := req.Do(ctx).StatusCode(&statusCode)
|
||||
require.NoError(t, res.Error())
|
||||
@@ -140,22 +135,47 @@ func TestIntegrationSearchDevDashboards(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
user apis.User
|
||||
params string
|
||||
params map[string]string
|
||||
}{
|
||||
{
|
||||
name: "all",
|
||||
user: helper.Org1.Admin,
|
||||
params: "", // only dashboards
|
||||
name: "all",
|
||||
user: helper.Org1.Admin,
|
||||
},
|
||||
{
|
||||
name: "simple-query",
|
||||
user: helper.Org1.Admin,
|
||||
params: "query=stacking",
|
||||
name: "query-single-word",
|
||||
user: helper.Org1.Admin,
|
||||
params: map[string]string{
|
||||
"query": "stacking",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "with-text-panel",
|
||||
user: helper.Org1.Admin,
|
||||
params: "field=panel_types&panelType=text",
|
||||
name: "query-multiple-words",
|
||||
user: helper.Org1.Admin,
|
||||
params: map[string]string{
|
||||
"query": "graph softMin", // must match ALL terms
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "with-text-panel",
|
||||
user: helper.Org1.Admin,
|
||||
params: map[string]string{
|
||||
"field": "panel_types", // return panel types
|
||||
"panelType": "text",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "title-ngram-prefix",
|
||||
user: helper.Org1.Admin,
|
||||
params: map[string]string{
|
||||
"query": "zer", // should match "Zero Decimals Y Ticks"
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "title-ngram-middle-word",
|
||||
user: helper.Org1.Admin,
|
||||
params: map[string]string{
|
||||
"query": "decim", // should match "Zero Decimals Y Ticks"
|
||||
},
|
||||
},
|
||||
}
|
||||
for i, tc := range testCases {
|
||||
|
||||
+3
-3
@@ -10,7 +10,7 @@
|
||||
"panel-tests",
|
||||
"graph-ng"
|
||||
],
|
||||
"score": 0.658
|
||||
"score": 0.284
|
||||
},
|
||||
{
|
||||
"resource": "dashboards",
|
||||
@@ -21,8 +21,8 @@
|
||||
"panel-tests",
|
||||
"graph-ng"
|
||||
],
|
||||
"score": 0.625
|
||||
"score": 0.269
|
||||
}
|
||||
],
|
||||
"maxScore": 0.658
|
||||
"maxScore": 0.284
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"totalHits": 1,
|
||||
"hits": [
|
||||
{
|
||||
"resource": "dashboards",
|
||||
"name": "timeseries-soft-limits",
|
||||
"title": "Panel Tests - Graph NG - softMin/softMax",
|
||||
"tags": [
|
||||
"gdev",
|
||||
"panel-tests",
|
||||
"graph-ng"
|
||||
],
|
||||
"score": 0.024
|
||||
}
|
||||
],
|
||||
"maxScore": 0.024
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"totalHits": 1,
|
||||
"hits": [
|
||||
{
|
||||
"resource": "dashboards",
|
||||
"name": "timeseries-y-ticks-zero-decimals",
|
||||
"title": "Zero Decimals Y Ticks",
|
||||
"tags": [
|
||||
"gdev",
|
||||
"panel-tests",
|
||||
"graph-ng"
|
||||
],
|
||||
"score": 0.35
|
||||
}
|
||||
],
|
||||
"maxScore": 0.35
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"totalHits": 1,
|
||||
"hits": [
|
||||
{
|
||||
"resource": "dashboards",
|
||||
"name": "timeseries-y-ticks-zero-decimals",
|
||||
"title": "Zero Decimals Y Ticks",
|
||||
"tags": [
|
||||
"gdev",
|
||||
"panel-tests",
|
||||
"graph-ng"
|
||||
],
|
||||
"score": 0.35
|
||||
}
|
||||
],
|
||||
"maxScore": 0.35
|
||||
}
|
||||
Reference in New Issue
Block a user