diff --git a/public/app/features/dashboard/state/DashboardMigrator.test.ts b/public/app/features/dashboard/state/DashboardMigrator.test.ts index f0b47fc2ca0..0db0bef259b 100644 --- a/public/app/features/dashboard/state/DashboardMigrator.test.ts +++ b/public/app/features/dashboard/state/DashboardMigrator.test.ts @@ -1382,6 +1382,44 @@ describe('DashboardModel', () => { `); }); }); + + describe('when migrating folded panel without fieldConfig.defaults', () => { + let model: DashboardModel; + + beforeEach(() => { + model = new DashboardModel({ + schemaVersion: 29, + panels: [ + { + id: 1, + type: 'timeseries', + panels: [ + { + id: 2, + fieldConfig: { + overrides: [ + { + matcher: { id: 'byName', options: 'D-series' }, + properties: [ + { + id: 'displayName', + value: 'foobar', + }, + ], + }, + ], + }, + }, + ], + }, + ], + }); + }); + + it('should ignore fieldConfig.defaults', () => { + expect(model.panels[0].panels[0].fieldConfig.defaults).toEqual(undefined); + }); + }); }); function createRow(options: any, panelDescriptions: any[]) { diff --git a/public/app/features/dashboard/state/DashboardMigrator.ts b/public/app/features/dashboard/state/DashboardMigrator.ts index 7a09a5e357b..a9ebd680179 100644 --- a/public/app/features/dashboard/state/DashboardMigrator.ts +++ b/public/app/features/dashboard/state/DashboardMigrator.ts @@ -955,7 +955,12 @@ function upgradeValueMappingsForPanel(panel: PanelModel) { return panel; } - fieldConfig.defaults.mappings = upgradeValueMappings(fieldConfig.defaults.mappings, fieldConfig.defaults.thresholds); + if (fieldConfig.defaults) { + fieldConfig.defaults.mappings = upgradeValueMappings( + fieldConfig.defaults.mappings, + fieldConfig.defaults.thresholds + ); + } // Protect against no overrides if (Array.isArray(fieldConfig.overrides)) {