mirror of
https://github.com/grafana/grafana.git
synced 2025-02-03 12:11:09 -06:00
Merge pull request #16014 from alexanderzobnin/fix-15993
Panels: fix loading panels with non-array targets
This commit is contained in:
commit
5617db36b2
@ -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);
|
||||
|
@ -125,7 +125,7 @@ export class PanelModel {
|
||||
}
|
||||
|
||||
ensureQueryIds() {
|
||||
if (this.targets) {
|
||||
if (this.targets && _.isArray(this.targets)) {
|
||||
for (const query of this.targets) {
|
||||
if (!query.refId) {
|
||||
query.refId = this.getNextQueryLetter();
|
||||
|
Loading…
Reference in New Issue
Block a user