PromQueryEditor.test.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import React from 'react';
  2. import { shallow } from 'enzyme';
  3. import { dateTime } from '@grafana/ui';
  4. import { PromQueryEditor } from './PromQueryEditor';
  5. import { PrometheusDatasource } from '../datasource';
  6. import { PromQuery } from '../types';
  7. jest.mock('app/features/dashboard/services/TimeSrv', () => {
  8. return {
  9. getTimeSrv: () => ({
  10. timeRange: () => ({
  11. from: dateTime(),
  12. to: dateTime(),
  13. }),
  14. }),
  15. };
  16. });
  17. const setup = (propOverrides?: object) => {
  18. const datasourceMock: unknown = {
  19. createQuery: jest.fn(q => q),
  20. getPrometheusTime: jest.fn((date, roundup) => 123),
  21. };
  22. const datasource: PrometheusDatasource = datasourceMock as PrometheusDatasource;
  23. const onRunQuery = jest.fn();
  24. const onChange = jest.fn();
  25. const query: PromQuery = { expr: '', refId: 'A' };
  26. const props: any = {
  27. datasource,
  28. onChange,
  29. onRunQuery,
  30. query,
  31. };
  32. Object.assign(props, propOverrides);
  33. const wrapper = shallow(<PromQueryEditor {...props} />);
  34. const instance = wrapper.instance() as PromQueryEditor;
  35. return {
  36. instance,
  37. wrapper,
  38. };
  39. };
  40. describe('Render PromQueryEditor with basic options', () => {
  41. it('should render', () => {
  42. const { wrapper } = setup();
  43. expect(wrapper).toMatchSnapshot();
  44. });
  45. });