97 lines
2.7 KiB
TypeScript
97 lines
2.7 KiB
TypeScript
import _ from 'lodash';
|
|
import './matchMedia.mock';
|
|
import { DEFAULT_SEVERITY, DEFAULT_TARGET, PANEL_DEFAULTS, TriggerPanelCtrl } from '../triggers_panel_ctrl';
|
|
import { CURRENT_SCHEMA_VERSION } from '../migrations';
|
|
|
|
jest.mock('@grafana/runtime', () => {
|
|
return {
|
|
getDataSourceSrv: () => ({
|
|
getMetricSources: () => {
|
|
return [{ meta: { id: 'alexanderzobnin-zabbix-datasource' }, value: {}, name: 'zabbix_default' }];
|
|
},
|
|
get: () => Promise.resolve({})
|
|
}),
|
|
};
|
|
}, { virtual: true });
|
|
|
|
describe('Triggers Panel schema migration', () => {
|
|
let ctx: any = {};
|
|
let updatePanelCtrl;
|
|
|
|
const timeoutMock = () => {
|
|
};
|
|
|
|
beforeEach(() => {
|
|
ctx = {
|
|
scope: {
|
|
panel: {
|
|
datasource: 'zabbix',
|
|
triggers: DEFAULT_TARGET,
|
|
hostField: true,
|
|
statusField: false,
|
|
severityField: false,
|
|
lastChangeField: true,
|
|
ageField: true,
|
|
infoField: true,
|
|
limit: 10,
|
|
showTriggers: 'unacknowledged',
|
|
hideHostsInMaintenance: false,
|
|
hostsInMaintenance: false,
|
|
sortTriggersBy: { text: 'last change', value: 'lastchange' },
|
|
showEvents: { text: 'Problems', value: '1' },
|
|
triggerSeverity: DEFAULT_SEVERITY,
|
|
okEventColor: 'rgba(0, 245, 153, 0.45)',
|
|
ackEventColor: 'rgba(0, 0, 0, 0)',
|
|
scroll: true,
|
|
pageSize: 10,
|
|
fontSize: '100%',
|
|
}
|
|
}
|
|
};
|
|
|
|
updatePanelCtrl = (scope) => new TriggerPanelCtrl(scope, {}, timeoutMock);
|
|
});
|
|
|
|
it('should update old panel schema', () => {
|
|
const updatedPanelCtrl = updatePanelCtrl(ctx.scope);
|
|
|
|
const expected = _.defaultsDeep({
|
|
schemaVersion: CURRENT_SCHEMA_VERSION,
|
|
datasource: 'zabbix',
|
|
targets: [
|
|
{
|
|
...DEFAULT_TARGET,
|
|
queryType: 5,
|
|
showProblems: 'problems',
|
|
options: {
|
|
hostsInMaintenance: false,
|
|
acknowledged: 0,
|
|
sortProblems: 'default',
|
|
minSeverity: 0,
|
|
limit: 10,
|
|
},
|
|
}
|
|
],
|
|
sortProblems: 'lastchange',
|
|
ageField: true,
|
|
statusField: false,
|
|
severityField: false,
|
|
limit: 10,
|
|
okEventColor: 'rgba(0, 245, 153, 0.45)',
|
|
ackEventColor: 'rgba(0, 0, 0, 0)'
|
|
}, PANEL_DEFAULTS);
|
|
|
|
expect(updatedPanelCtrl.panel).toEqual(expected);
|
|
});
|
|
|
|
it('should create new panel with default schema', () => {
|
|
ctx.scope.panel = {};
|
|
const updatedPanelCtrl = updatePanelCtrl(ctx.scope);
|
|
|
|
const expected = _.defaultsDeep({
|
|
schemaVersion: CURRENT_SCHEMA_VERSION,
|
|
}, PANEL_DEFAULTS);
|
|
expect(updatedPanelCtrl.panel).toEqual(expected);
|
|
});
|
|
});
|