diff --git a/public/app/features/dashboard/state/PanelModel.test.ts b/public/app/features/dashboard/state/PanelModel.test.ts index 686a8ba6d28..82af0804029 100644 --- a/public/app/features/dashboard/state/PanelModel.test.ts +++ b/public/app/features/dashboard/state/PanelModel.test.ts @@ -3,9 +3,10 @@ import { PanelModel } from './PanelModel'; describe('PanelModel', () => { describe('when creating new panel model', () => { let model; + let modelJson; beforeEach(() => { - model = new PanelModel({ + modelJson = { type: 'table', showColumns: true, targets: [{ refId: 'A' }, { noRefId: true }], @@ -23,7 +24,8 @@ describe('PanelModel', () => { }, ], }, - }); + }; + model = new PanelModel(modelJson); }); it('should apply defaults', () => { @@ -38,6 +40,15 @@ describe('PanelModel', () => { expect(model.targets[1].refId).toBe('B'); }); + it("shouldn't break panel with non-array targets", () => { + modelJson.targets = { + 0: { refId: 'A' }, + foo: { bar: 'baz' }, + }; + model = new PanelModel(modelJson); + expect(model.targets[0].refId).toBe('A'); + }); + it('getSaveModel should remove defaults', () => { const saveModel = model.getSaveModel(); expect(saveModel.gridPos).toBe(undefined);