fix problems panel tests
This commit is contained in:
@@ -2,7 +2,7 @@ import _ from 'lodash';
|
||||
import {DEFAULT_TARGET} from './triggers_panel_ctrl';
|
||||
|
||||
// Actual schema version
|
||||
export const CURRENT_SCHEMA_VERSION = 5;
|
||||
export const CURRENT_SCHEMA_VERSION = 6;
|
||||
|
||||
export function migratePanelSchema(panel) {
|
||||
if (isEmptyPanel(panel)) {
|
||||
@@ -26,7 +26,6 @@ export function migratePanelSchema(panel) {
|
||||
if (schemaVersion < 3) {
|
||||
// delete old props
|
||||
delete panel.lastChangeField;
|
||||
delete panel.ageField;
|
||||
delete panel.infoField;
|
||||
delete panel.scroll;
|
||||
delete panel.hideHostsInMaintenance;
|
||||
@@ -40,6 +39,12 @@ export function migratePanelSchema(panel) {
|
||||
}
|
||||
}
|
||||
|
||||
if (schemaVersion < 6) {
|
||||
if (panel.showEvents && panel.showEvents.value === '1') {
|
||||
panel.showEvents.value = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return panel;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import _ from 'lodash';
|
||||
import mocks from '../../test-setup/mocks';
|
||||
import {TriggerPanelCtrl} from '../triggers_panel_ctrl';
|
||||
import {DEFAULT_TARGET, DEFAULT_SEVERITY, PANEL_DEFAULTS} from '../triggers_panel_ctrl';
|
||||
import {CURRENT_SCHEMA_VERSION} from '../migrations';
|
||||
|
||||
describe('Triggers Panel schema migration', () => {
|
||||
let ctx = {};
|
||||
let updatePanelCtrl;
|
||||
let datasourceSrvMock = {
|
||||
getMetricSources: () => {
|
||||
return [{ meta: {id: 'alexanderzobnin-zabbix-datasource'}, value: {}, name: 'zabbix_default' }];
|
||||
@@ -40,10 +42,12 @@ describe('Triggers Panel schema migration', () => {
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
updatePanelCtrl = (scope) => new TriggerPanelCtrl(scope, {}, timeoutMock, datasourceSrvMock, {}, {}, {}, mocks.timeSrvMock);
|
||||
});
|
||||
|
||||
it('should update old panel schema', () => {
|
||||
let updatedPanelCtrl = new TriggerPanelCtrl(ctx.scope, {}, timeoutMock, datasourceSrvMock, {}, {}, {});
|
||||
let updatedPanelCtrl = updatePanelCtrl(ctx.scope);
|
||||
|
||||
let expected = _.defaultsDeep({
|
||||
schemaVersion: CURRENT_SCHEMA_VERSION,
|
||||
@@ -51,6 +55,7 @@ describe('Triggers Panel schema migration', () => {
|
||||
targets: {
|
||||
'zabbix': DEFAULT_TARGET
|
||||
},
|
||||
ageField: true,
|
||||
statusField: false,
|
||||
severityField: false,
|
||||
limit: 10,
|
||||
@@ -63,7 +68,7 @@ describe('Triggers Panel schema migration', () => {
|
||||
|
||||
it('should create new panel with default schema', () => {
|
||||
ctx.scope.panel = {};
|
||||
let updatedPanelCtrl = new TriggerPanelCtrl(ctx.scope, {}, {}, datasourceSrvMock, {}, {}, {});
|
||||
let updatedPanelCtrl = updatePanelCtrl(ctx.scope);
|
||||
|
||||
let expected = _.defaultsDeep({
|
||||
schemaVersion: CURRENT_SCHEMA_VERSION,
|
||||
@@ -79,7 +84,7 @@ describe('Triggers Panel schema migration', () => {
|
||||
ctx.scope.panel = {
|
||||
targets: [{}]
|
||||
};
|
||||
let updatedPanelCtrl = new TriggerPanelCtrl(ctx.scope, {}, timeoutMock, datasourceSrvMock, {}, {}, {});
|
||||
let updatedPanelCtrl = updatePanelCtrl(ctx.scope);
|
||||
|
||||
let expected = _.defaultsDeep({
|
||||
datasources: ['zabbix_default'],
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import _ from 'lodash';
|
||||
import mocks from '../../test-setup/mocks';
|
||||
import {TriggerPanelCtrl} from '../triggers_panel_ctrl';
|
||||
import {PANEL_DEFAULTS, DEFAULT_TARGET} from '../triggers_panel_ctrl';
|
||||
// import { create } from 'domain';
|
||||
@@ -15,7 +16,8 @@ describe('TriggerPanelCtrl', () => {
|
||||
replaceTemplateVars: () => {},
|
||||
zabbix: {
|
||||
getTriggers: jest.fn().mockReturnValue([generateTrigger("1"), generateTrigger("1")]),
|
||||
getAcknowledges: jest.fn().mockReturnValue(Promise.resolve([]))
|
||||
getAcknowledges: jest.fn().mockReturnValue(Promise.resolve([])),
|
||||
getEventAlerts: jest.fn().mockResolvedValue([]),
|
||||
}
|
||||
};
|
||||
|
||||
@@ -29,7 +31,7 @@ describe('TriggerPanelCtrl', () => {
|
||||
},
|
||||
get: () => Promise.resolve(zabbixDSMock)
|
||||
};
|
||||
createPanelCtrl = () => new TriggerPanelCtrl(ctx.scope, {}, timeoutMock, datasourceSrvMock, {}, {}, {});
|
||||
createPanelCtrl = () => new TriggerPanelCtrl(ctx.scope, {}, timeoutMock, datasourceSrvMock, {}, {}, {}, mocks.timeSrvMock);
|
||||
|
||||
const getTriggersResp = [
|
||||
[
|
||||
@@ -72,6 +74,19 @@ describe('TriggerPanelCtrl', () => {
|
||||
'zabbix_default'
|
||||
]);
|
||||
});
|
||||
|
||||
it('should rewrite default empty target', () => {
|
||||
ctx.scope.panel = {
|
||||
targets: [{
|
||||
"target": "",
|
||||
"refId": "A"
|
||||
}],
|
||||
};
|
||||
let panelCtrl = createPanelCtrl();
|
||||
expect(panelCtrl.available_datasources).toEqual([
|
||||
'zabbix_default', 'zabbix'
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('When refreshing panel', () => {
|
||||
@@ -90,9 +105,7 @@ describe('TriggerPanelCtrl', () => {
|
||||
expect(formattedTrigger.host).toBe('backend01');
|
||||
expect(formattedTrigger.hostTechName).toBe('backend01_tech');
|
||||
expect(formattedTrigger.datasource).toBe('zabbix_default');
|
||||
expect(formattedTrigger.severity).toBe('Disaster');
|
||||
expect(formattedTrigger.maintenance).toBe(true);
|
||||
expect(formattedTrigger.age).toBeTruthy();
|
||||
expect(formattedTrigger.lastchange).toBeTruthy();
|
||||
done();
|
||||
});
|
||||
|
||||
@@ -100,14 +100,17 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
||||
this.datasources = {};
|
||||
this.range = {};
|
||||
|
||||
// this.panel.schemaVersion = CURRENT_SCHEMA_VERSION;
|
||||
this.panel = migratePanelSchema(this.panel);
|
||||
_.defaultsDeep(this.panel, _.cloneDeep(PANEL_DEFAULTS));
|
||||
|
||||
this.available_datasources = _.map(this.getZabbixDataSources(), 'name');
|
||||
// console.log(this.available_datasources);
|
||||
if (this.panel.datasources.length === 0) {
|
||||
this.panel.datasources.push(this.available_datasources[0]);
|
||||
}
|
||||
if (_.isEmpty(this.panel.targets)) {
|
||||
if (this.isEmptyTargets()) {
|
||||
console.log("isEmptyTargets");
|
||||
this.panel.targets[this.panel.datasources[0]] = DEFAULT_TARGET;
|
||||
}
|
||||
|
||||
@@ -151,6 +154,15 @@ export class TriggerPanelCtrl extends PanelCtrl {
|
||||
});
|
||||
}
|
||||
|
||||
isEmptyTargets() {
|
||||
const emptyTargets = _.isEmpty(this.panel.targets);
|
||||
const emptyTarget = (this.panel.targets.length === 1 && (
|
||||
_.isEmpty(this.panel.targets[0]) ||
|
||||
this.panel.targets[0].target === ""
|
||||
));
|
||||
return emptyTargets || emptyTarget;
|
||||
}
|
||||
|
||||
onInitEditMode() {
|
||||
this.addEditorTab('Triggers', triggerPanelTriggersTab, 1);
|
||||
this.addEditorTab('Options', triggerPanelOptionsTab, 2);
|
||||
|
||||
@@ -11,6 +11,10 @@ export let datasourceSrvMock = {
|
||||
getAll: jest.fn()
|
||||
};
|
||||
|
||||
export let timeSrvMock = {
|
||||
timeRange: jest.fn().mockReturnValue({ from: '', to: '' })
|
||||
}
|
||||
|
||||
export let zabbixAlertingSrvMock = {
|
||||
setPanelAlertState: jest.fn(),
|
||||
removeZabbixThreshold: jest.fn(),
|
||||
@@ -20,6 +24,7 @@ const defaultExports = {
|
||||
templateSrvMock,
|
||||
backendSrvMock,
|
||||
datasourceSrvMock,
|
||||
timeSrvMock,
|
||||
zabbixAlertingSrvMock
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user