Files
grafana/apps/dashboard/pkg/migration/schemaversion/v22_test.go
Haris Rozajac abdf1943b9 Dashboard Migrations: V22 table panel styles - set property to 'auto' (#108949)
* Dashboard Migrations: V31 LabelsToFields-Merge Migration

* Dashboard Migrations: V32 No-op migration

* simplify

* Refactor to reduce nesting

* Dashboard Migrations: V30 value mappings and tooltip options

* Do not automigrate since graph is migrated in v27

* Refactor to reduce nesting

* Add test case for invalid mapping

* migrate to v29

* wip

* Fix tests

* fix output

* wip

* fix min version issue

* fix wire

* ignore gauge logic as it never get's executed

* add panel migration to test

* improvements

* update

* cleanup

* address mappings inconsistencies

* cleanup

* fix lint issues

* add cfg when initializing

* v27 migration

* migrate to v26

* preallocate array

* remove logic for grafana-singlestat because it's shared with stat logic; improve error handling and testing

* fix go lint

* don't preallocate; cleanup comments

* cleanup

* wip

* run internal provider function when getting a single panel

* clean up; add tests

* add tests for panel plugin service

* remove obsolete mock for getting panel plugin

* add tests for the whole pipeline

* fix test and lint

* migrate to v23

* migrate to v22

* refactor

* fix test

---------

Co-authored-by: Ivan Ortega <ivanortegaalba@gmail.com>
2025-08-08 08:03:02 +00:00

124 lines
2.8 KiB
Go

package schemaversion_test
import (
"testing"
"github.com/grafana/grafana/apps/dashboard/pkg/migration/schemaversion"
)
func TestV22(t *testing.T) {
tests := []migrationTestCase{
{
name: "table panel styles align is set to auto",
input: map[string]interface{}{
"title": "V22 Table Panel Styles Test",
"schemaVersion": 21,
"panels": []interface{}{
map[string]interface{}{
"id": 1,
"type": "table",
"styles": []interface{}{
map[string]interface{}{
"type": "number",
"pattern": "Time",
"align": "left",
},
map[string]interface{}{
"type": "string",
"pattern": "Value",
"align": "right",
},
},
},
},
},
expected: map[string]interface{}{
"title": "V22 Table Panel Styles Test",
"schemaVersion": 22,
"panels": []interface{}{
map[string]interface{}{
"id": 1,
"type": "table",
"styles": []interface{}{
map[string]interface{}{
"type": "number",
"pattern": "Time",
"align": "auto",
},
map[string]interface{}{
"type": "string",
"pattern": "Value",
"align": "auto",
},
},
},
},
},
},
{
name: "non-table panel is unchanged except schemaVersion",
input: map[string]interface{}{
"title": "V22 Non-Table Panel Test",
"schemaVersion": 21,
"panels": []interface{}{
map[string]interface{}{
"id": 2,
"type": "graph",
"styles": []interface{}{
map[string]interface{}{
"type": "number",
"pattern": "Time",
"align": "left",
},
},
},
},
},
expected: map[string]interface{}{
"title": "V22 Non-Table Panel Test",
"schemaVersion": 22,
"panels": []interface{}{
map[string]interface{}{
"id": 2,
"type": "graph",
"styles": []interface{}{
map[string]interface{}{
"type": "number",
"pattern": "Time",
"align": "left",
},
},
},
},
},
},
{
name: "table panel with no styles is unchanged except schemaVersion",
input: map[string]interface{}{
"title": "V22 Table Panel No Styles Test",
"schemaVersion": 21,
"panels": []interface{}{
map[string]interface{}{
"id": 3,
"type": "table",
"styles": []interface{}{},
},
},
},
expected: map[string]interface{}{
"title": "V22 Table Panel No Styles Test",
"schemaVersion": 22,
"panels": []interface{}{
map[string]interface{}{
"id": 3,
"type": "table",
"styles": []interface{}{},
},
},
},
},
}
runMigrationTests(t, tests, schemaversion.V22)
}