Chore: Dependency clean up
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import React, { FC } from 'react';
|
||||
import React, { PropsWithChildren } from 'react';
|
||||
import { cx, css } from '@emotion/css';
|
||||
import { stylesFactory, useTheme, Tooltip } from '@grafana/ui';
|
||||
import { GrafanaTheme, GrafanaThemeType } from '@grafana/data';
|
||||
@@ -12,14 +12,16 @@ interface Props {
|
||||
onClick(event: React.MouseEvent<HTMLButtonElement>): void;
|
||||
}
|
||||
|
||||
export const ActionButton: FC<Props> = ({ icon, width, tooltip, className, children, onClick }) => {
|
||||
export const ActionButton = ({ icon, width, tooltip, className, children, onClick }: PropsWithChildren<Props>) => {
|
||||
const theme = useTheme();
|
||||
const styles = getStyles(theme);
|
||||
const buttonClass = cx(
|
||||
'btn',
|
||||
styles.button,
|
||||
css`width: ${width || 3}rem`,
|
||||
className,
|
||||
css`
|
||||
width: ${width || 3}rem;
|
||||
`,
|
||||
className
|
||||
);
|
||||
|
||||
let button = (
|
||||
|
||||
@@ -25,8 +25,10 @@ jest.mock('../components/AnnotationQueryEditor', () => ({
|
||||
|
||||
describe('ZabbixDatasource', () => {
|
||||
let ctx: any = {};
|
||||
let consoleSpy: jest.SpyInstance;
|
||||
|
||||
beforeEach(() => {
|
||||
consoleSpy = jest.spyOn(console, 'log').mockImplementation(() => {});
|
||||
ctx.instanceSettings = {
|
||||
jsonData: {
|
||||
alerting: false,
|
||||
@@ -60,6 +62,10 @@ describe('ZabbixDatasource', () => {
|
||||
ctx.ds.templateSrv = templateSrvMock;
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
consoleSpy.mockRestore();
|
||||
});
|
||||
|
||||
describe('When querying text data', () => {
|
||||
beforeEach(() => {
|
||||
ctx.ds.replaceTemplateVars = (str) => str;
|
||||
|
||||
@@ -56,7 +56,6 @@ export class CachingProxy {
|
||||
* with same params when waiting for result.
|
||||
*/
|
||||
function callOnce(func, promiseKeeper, funcScope) {
|
||||
// tslint:disable-next-line: only-arrow-functions
|
||||
return function () {
|
||||
const hash = getRequestHash(arguments);
|
||||
if (!promiseKeeper[hash]) {
|
||||
@@ -78,7 +77,6 @@ function callOnce(func, promiseKeeper, funcScope) {
|
||||
}
|
||||
|
||||
function cacheRequest(func, funcName, funcScope, self) {
|
||||
// tslint:disable-next-line: only-arrow-functions
|
||||
return function () {
|
||||
if (!self.cache[funcName]) {
|
||||
self.cache[funcName] = {};
|
||||
|
||||
@@ -1,108 +0,0 @@
|
||||
import { Zabbix } from './zabbix';
|
||||
|
||||
jest.mock('@grafana/runtime', () => ({
|
||||
getBackendSrv: () => ({
|
||||
datasourceRequest: jest.fn().mockResolvedValue({data: {result: ''}}),
|
||||
}),
|
||||
getBackendSrv: () => ({
|
||||
datasourceRequest: jest.fn().mockResolvedValue({ data: { result: '' } }),
|
||||
fetch: () => ({
|
||||
toPromise: () => jest.fn().mockResolvedValue({ data: { result: '' } })
|
||||
}),
|
||||
}),
|
||||
}), {virtual: true});
|
||||
|
||||
describe('Zabbix', () => {
|
||||
let ctx = {};
|
||||
let zabbix;
|
||||
let options = {
|
||||
url: 'http://localhost',
|
||||
username: 'zabbix',
|
||||
password: 'zabbix',
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
ctx.options = options;
|
||||
// ctx.backendSrv = mocks.backendSrvMock;
|
||||
// ctx.datasourceSrv = mocks.datasourceSrvMock;
|
||||
zabbix = new Zabbix(ctx.options);
|
||||
});
|
||||
|
||||
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', () => {
|
||||
beforeEach(() => {
|
||||
zabbix.zabbixAPI.getProxies = jest.fn().mockResolvedValue([
|
||||
{ host: 'proxy-foo', proxyid: '10101' },
|
||||
{ host: 'proxy-bar', proxyid: '10102' },
|
||||
]);
|
||||
ctx.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' }] },
|
||||
];
|
||||
});
|
||||
|
||||
it("should return all triggers for empty filter", done => {
|
||||
zabbix.filterTriggersByProxy(ctx.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(ctx.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(ctx.triggers, 'proxy-bar').then(triggers => {
|
||||
const triggerids = triggers.map(t => t.triggerid);
|
||||
expect(triggerids).toEqual(['5', '6']);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
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();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -2,8 +2,7 @@ import React, { PureComponent } from 'react';
|
||||
import { cx } from '@emotion/css';
|
||||
import ReactTable from 'react-table-6';
|
||||
import _ from 'lodash';
|
||||
// eslint-disable-next-line
|
||||
import moment from 'moment';
|
||||
import moment from 'moment-timezone';
|
||||
import { isNewProblem } from '../../utils';
|
||||
import { EventTag } from '../EventTag';
|
||||
import { ProblemDetails } from './ProblemDetails';
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
// JSHint options
|
||||
/* globals global: false */
|
||||
|
||||
import { JSDOM } from 'jsdom';
|
||||
import { PanelCtrl, MetricsPanelCtrl } from './panelStub';
|
||||
|
||||
// Suppress messages
|
||||
console.log = () => {};
|
||||
|
||||
jest.mock('grafana/app/features/templating/template_srv', () => {
|
||||
return {};
|
||||
}, {virtual: true});
|
||||
@@ -82,8 +75,6 @@ jest.mock('grafana/app/core/config', () => {
|
||||
};
|
||||
}, {virtual: true});
|
||||
|
||||
jest.mock('jquery', () => 'module not found', {virtual: true});
|
||||
|
||||
jest.mock('grafana/app/core/utils/kbn', () => {
|
||||
return {
|
||||
round_interval: n => n,
|
||||
@@ -91,12 +82,6 @@ jest.mock('grafana/app/core/utils/kbn', () => {
|
||||
};
|
||||
}, {virtual: true});
|
||||
|
||||
// Setup jsdom
|
||||
let dom = new JSDOM('<html><head><script></script></head><body></body></html>');
|
||||
global.window = dom.window;
|
||||
global.document = global.window.document;
|
||||
global.Node = window.Node;
|
||||
|
||||
// Mock Canvas.getContext(), fixes
|
||||
// Error: Not implemented: HTMLCanvasElement.prototype.getContext (without installing the canvas npm package)
|
||||
window.HTMLCanvasElement.prototype.getContext = () => {};
|
||||
// window.HTMLCanvasElement.prototype.getContext = () => {};
|
||||
|
||||
Reference in New Issue
Block a user