mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
* [WIP] Metrics browser * Removed unused import * Metrics selection logic * Remove redundant tests All data is fetched now regardless to the current range so test for checking reloading the data on the range change are no longer relevant. * Remove commented out code blocks * Add issue number to todos Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
104 lines
2.8 KiB
TypeScript
104 lines
2.8 KiB
TypeScript
import React from 'react';
|
|
import { shallow } from 'enzyme';
|
|
import { act } from 'react-dom/test-utils';
|
|
import PromExploreQueryEditor from './PromExploreQueryEditor';
|
|
import { PrometheusDatasource } from '../datasource';
|
|
import { PromQuery } from '../types';
|
|
import { LoadingState, PanelData, toUtc, TimeRange } from '@grafana/data';
|
|
|
|
const setup = (renderMethod: any, propOverrides?: object) => {
|
|
const datasourceMock: unknown = {
|
|
languageProvider: {
|
|
syntax: () => {},
|
|
getLabelKeys: () => [],
|
|
metrics: [],
|
|
},
|
|
};
|
|
const datasource: PrometheusDatasource = datasourceMock as PrometheusDatasource;
|
|
const onRunQuery = jest.fn();
|
|
const onChange = jest.fn();
|
|
const query: PromQuery = { expr: '', refId: 'A', interval: '1s' };
|
|
const range: TimeRange = {
|
|
from: toUtc('2020-01-01', 'YYYY-MM-DD'),
|
|
to: toUtc('2020-01-02', 'YYYY-MM-DD'),
|
|
raw: {
|
|
from: toUtc('2020-01-01', 'YYYY-MM-DD'),
|
|
to: toUtc('2020-01-02', 'YYYY-MM-DD'),
|
|
},
|
|
};
|
|
const data: PanelData = {
|
|
state: LoadingState.NotStarted,
|
|
series: [],
|
|
request: {
|
|
requestId: '1',
|
|
dashboardId: 1,
|
|
intervalMs: 1000,
|
|
interval: '1s',
|
|
panelId: 1,
|
|
range: {
|
|
from: toUtc('2020-01-01', 'YYYY-MM-DD'),
|
|
to: toUtc('2020-01-02', 'YYYY-MM-DD'),
|
|
raw: {
|
|
from: toUtc('2020-01-01', 'YYYY-MM-DD'),
|
|
to: toUtc('2020-01-02', 'YYYY-MM-DD'),
|
|
},
|
|
},
|
|
scopedVars: {},
|
|
targets: [],
|
|
timezone: 'GMT',
|
|
app: 'Grafana',
|
|
startTime: 0,
|
|
},
|
|
timeRange: {
|
|
from: toUtc('2020-01-01', 'YYYY-MM-DD'),
|
|
to: toUtc('2020-01-02', 'YYYY-MM-DD'),
|
|
raw: {
|
|
from: toUtc('2020-01-01', 'YYYY-MM-DD'),
|
|
to: toUtc('2020-01-02', 'YYYY-MM-DD'),
|
|
},
|
|
},
|
|
};
|
|
const history: any[] = [];
|
|
const exploreMode = 'Metrics';
|
|
|
|
const props: any = {
|
|
query,
|
|
data,
|
|
range,
|
|
datasource,
|
|
exploreMode,
|
|
history,
|
|
onChange,
|
|
onRunQuery,
|
|
};
|
|
|
|
Object.assign(props, propOverrides);
|
|
|
|
return renderMethod(<PromExploreQueryEditor {...props} />);
|
|
};
|
|
|
|
describe('PromExploreQueryEditor', () => {
|
|
let originalGetSelection: typeof window.getSelection;
|
|
beforeAll(() => {
|
|
originalGetSelection = window.getSelection;
|
|
window.getSelection = () => null;
|
|
});
|
|
|
|
afterAll(() => {
|
|
window.getSelection = originalGetSelection;
|
|
});
|
|
|
|
it('should render component', () => {
|
|
const wrapper = setup(shallow);
|
|
expect(wrapper).toMatchSnapshot();
|
|
});
|
|
|
|
it('should render PromQueryField with ExtraFieldElement', async () => {
|
|
// @ts-ignore strict null errpr TS2345: Argument of type '() => Promise<void>' is not assignable to parameter of type '() => void | undefined'.
|
|
await act(async () => {
|
|
const wrapper = setup(shallow);
|
|
expect(wrapper.html()).toContain('aria-label="Prometheus extra field"');
|
|
});
|
|
});
|
|
});
|