Chore: Dependency clean up
This commit is contained in:
113
src/datasource/zabbix/zabbix.test.ts
Normal file
113
src/datasource/zabbix/zabbix.test.ts
Normal file
@@ -0,0 +1,113 @@
|
||||
import { Zabbix } from './zabbix';
|
||||
|
||||
jest.mock(
|
||||
'@grafana/runtime',
|
||||
() => ({
|
||||
getBackendSrv: () => ({
|
||||
datasourceRequest: jest.fn().mockResolvedValue({ data: { result: '' } }),
|
||||
fetch: () => ({
|
||||
toPromise: () => jest.fn().mockResolvedValue({ data: { result: '' } }),
|
||||
}),
|
||||
}),
|
||||
}),
|
||||
{ virtual: true }
|
||||
);
|
||||
|
||||
describe('Zabbix', () => {
|
||||
let consoleSpy: jest.SpyInstance;
|
||||
let ctx = {
|
||||
options: {
|
||||
url: 'http://localhost',
|
||||
username: 'zabbix',
|
||||
password: 'zabbix',
|
||||
},
|
||||
};
|
||||
let zabbix;
|
||||
|
||||
beforeEach(() => {
|
||||
zabbix = new Zabbix(ctx.options);
|
||||
consoleSpy = jest.spyOn(console, 'log').mockImplementation(() => {});
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
consoleSpy.mockRestore();
|
||||
});
|
||||
|
||||
describe('When querying proxies', () => {
|
||||
beforeEach(() => {
|
||||
zabbix.zabbixAPI.getProxies = jest.fn().mockResolvedValue([
|
||||
{ host: 'proxy-foo', proxyid: '10101' },
|
||||
{ host: 'proxy-bar', proxyid: '10102' },
|
||||
]);
|
||||
});
|
||||
|
||||
it('should return all proxies if filter set to /.*/', (done) => {
|
||||
zabbix.getFilteredProxies('/.*/').then((proxies) => {
|
||||
expect(proxies).toMatchObject([{ host: 'proxy-foo' }, { host: 'proxy-bar' }]);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return matched proxies if regex filter used', (done) => {
|
||||
zabbix.getFilteredProxies('/.*-foo/').then((proxies) => {
|
||||
expect(proxies).toMatchObject([{ host: 'proxy-foo' }]);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return matched proxies if simple filter used', (done) => {
|
||||
zabbix.getFilteredProxies('proxy-bar').then((proxies) => {
|
||||
expect(proxies).toMatchObject([{ host: 'proxy-bar' }]);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return empty list for empty filter', (done) => {
|
||||
zabbix.getFilteredProxies('').then((proxies) => {
|
||||
expect(proxies).toEqual([]);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('When filtering triggers by proxy', () => {
|
||||
const triggers = [
|
||||
{ triggerid: '1', hosts: [{ name: 'backend01', proxy_hostid: '0' }] },
|
||||
{ triggerid: '2', hosts: [{ name: 'backend02', proxy_hostid: '0' }] },
|
||||
{ triggerid: '3', hosts: [{ name: 'frontend01', proxy_hostid: '10101' }] },
|
||||
{ triggerid: '4', hosts: [{ name: 'frontend02', proxy_hostid: '10101' }] },
|
||||
{ triggerid: '5', hosts: [{ name: 'db01', proxy_hostid: '10102' }] },
|
||||
{ triggerid: '6', hosts: [{ name: 'db02', proxy_hostid: '10102' }] },
|
||||
];
|
||||
beforeEach(() => {
|
||||
zabbix.zabbixAPI.getProxies = jest.fn().mockResolvedValue([
|
||||
{ host: 'proxy-foo', proxyid: '10101' },
|
||||
{ host: 'proxy-bar', proxyid: '10102' },
|
||||
]);
|
||||
});
|
||||
|
||||
it('should return all triggers for empty filter', (done) => {
|
||||
zabbix.filterTriggersByProxy(triggers, '').then((triggers) => {
|
||||
const triggerids = triggers.map((t) => t.triggerid);
|
||||
expect(triggerids).toEqual(['1', '2', '3', '4', '5', '6']);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return triggers belonging proxy matched regex filter', (done) => {
|
||||
zabbix.filterTriggersByProxy(triggers, '/.*-foo/').then((triggers) => {
|
||||
const triggerids = triggers.map((t) => t.triggerid);
|
||||
expect(triggerids).toEqual(['3', '4']);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return triggers belonging proxy matched name filter', (done) => {
|
||||
zabbix.filterTriggersByProxy(triggers, 'proxy-bar').then((triggers) => {
|
||||
const triggerids = triggers.map((t) => t.triggerid);
|
||||
expect(triggerids).toEqual(['5', '6']);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user