Dashboard Migrations: v27 repeated panels and constant variable (#108644)
This commit is contained in:
@@ -0,0 +1,172 @@
|
||||
package schemaversion_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/grafana/grafana/apps/dashboard/pkg/migration/schemaversion"
|
||||
)
|
||||
|
||||
func TestV27(t *testing.T) {
|
||||
tests := []migrationTestCase{
|
||||
{
|
||||
name: "remove repeated panels with repeatPanelId and repeatByRow",
|
||||
input: map[string]interface{}{
|
||||
"schemaVersion": 26,
|
||||
"panels": []interface{}{
|
||||
map[string]interface{}{
|
||||
"id": 1,
|
||||
"type": "graph",
|
||||
"title": "Repeated Panel 1",
|
||||
"repeatPanelId": "panel1",
|
||||
},
|
||||
map[string]interface{}{
|
||||
"id": 2,
|
||||
"type": "graph",
|
||||
"title": "Repeated Panel 2",
|
||||
"repeatByRow": true,
|
||||
},
|
||||
map[string]interface{}{
|
||||
"id": 3,
|
||||
"type": "graph",
|
||||
"title": "Normal Panel",
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: map[string]interface{}{
|
||||
"schemaVersion": 27,
|
||||
"panels": []interface{}{
|
||||
map[string]interface{}{
|
||||
"id": 3,
|
||||
"type": "graph",
|
||||
"title": "Normal Panel",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "filter repeated panels in row panels",
|
||||
input: map[string]interface{}{
|
||||
"schemaVersion": 26,
|
||||
"panels": []interface{}{
|
||||
map[string]interface{}{
|
||||
"id": 1,
|
||||
"type": "row",
|
||||
"title": "Row with repeated panels",
|
||||
"panels": []interface{}{
|
||||
map[string]interface{}{
|
||||
"id": 2,
|
||||
"type": "graph",
|
||||
"title": "Repeated nested panel",
|
||||
"repeatPanelId": "nested_panel1",
|
||||
},
|
||||
map[string]interface{}{
|
||||
"id": 3,
|
||||
"type": "graph",
|
||||
"title": "Normal nested panel",
|
||||
},
|
||||
},
|
||||
},
|
||||
map[string]interface{}{
|
||||
"id": 4,
|
||||
"type": "graph",
|
||||
"title": "Normal panel outside row",
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: map[string]interface{}{
|
||||
"schemaVersion": 27,
|
||||
"panels": []interface{}{
|
||||
map[string]interface{}{
|
||||
"id": 1,
|
||||
"type": "row",
|
||||
"title": "Row with repeated panels",
|
||||
"panels": []interface{}{
|
||||
map[string]interface{}{
|
||||
"id": 3,
|
||||
"type": "graph",
|
||||
"title": "Normal nested panel",
|
||||
},
|
||||
},
|
||||
},
|
||||
map[string]interface{}{
|
||||
"id": 4,
|
||||
"type": "graph",
|
||||
"title": "Normal panel outside row",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "migrate constant variable to textbox with hide=0",
|
||||
input: map[string]interface{}{
|
||||
"schemaVersion": 26,
|
||||
"templating": map[string]interface{}{
|
||||
"list": []interface{}{
|
||||
map[string]interface{}{
|
||||
"name": "constant_var",
|
||||
"type": "constant",
|
||||
"query": "default_value",
|
||||
"hide": 0.0,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: map[string]interface{}{
|
||||
"schemaVersion": 27,
|
||||
"templating": map[string]interface{}{
|
||||
"list": []interface{}{
|
||||
map[string]interface{}{
|
||||
"name": "constant_var",
|
||||
"type": "textbox",
|
||||
"query": "default_value",
|
||||
"hide": 0.0,
|
||||
"current": map[string]interface{}{
|
||||
"selected": true,
|
||||
"text": "default_value",
|
||||
"value": "default_value",
|
||||
},
|
||||
"options": []interface{}{
|
||||
map[string]interface{}{
|
||||
"selected": true,
|
||||
"text": "default_value",
|
||||
"value": "default_value",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "do not migrate non-constant variable",
|
||||
input: map[string]interface{}{
|
||||
"schemaVersion": 26,
|
||||
"templating": map[string]interface{}{
|
||||
"list": []interface{}{
|
||||
map[string]interface{}{
|
||||
"name": "query_var",
|
||||
"type": "query",
|
||||
"query": "some_query",
|
||||
"hide": 0.0,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
expected: map[string]interface{}{
|
||||
"schemaVersion": 27,
|
||||
"templating": map[string]interface{}{
|
||||
"list": []interface{}{
|
||||
map[string]interface{}{
|
||||
"name": "query_var",
|
||||
"type": "query",
|
||||
"query": "some_query",
|
||||
"hide": 0.0,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
runMigrationTests(t, tests, schemaversion.V27)
|
||||
}
|
||||
Reference in New Issue
Block a user