VariableQueryEditor.test.tsx 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React from 'react';
  2. import renderer from 'react-test-renderer';
  3. import { StackdriverVariableQueryEditor } from './VariableQueryEditor';
  4. import { VariableQueryProps } from 'app/types/plugins';
  5. import { MetricFindQueryTypes } from '../types';
  6. jest.mock('../functions', () => ({
  7. getMetricTypes: () => ({ metricTypes: [], selectedMetricType: '' }),
  8. }));
  9. const props: VariableQueryProps = {
  10. onChange: (query, definition) => {},
  11. query: {},
  12. datasource: {
  13. getMetricTypes: async p => [],
  14. },
  15. templateSrv: { replace: s => s },
  16. };
  17. describe('VariableQueryEditor', () => {
  18. it('renders correctly', () => {
  19. const tree = renderer.create(<StackdriverVariableQueryEditor {...props} />).toJSON();
  20. expect(tree).toMatchSnapshot();
  21. });
  22. describe('and a new variable is created', () => {
  23. it('should trigger a query using the first query type in the array', done => {
  24. props.onChange = (query, definition) => {
  25. expect(definition).toBe('Stackdriver - Metric Types');
  26. done();
  27. };
  28. renderer.create(<StackdriverVariableQueryEditor {...props} />).toJSON();
  29. });
  30. });
  31. describe('and an existing variable is edited', () => {
  32. it('should trigger new query using the saved query type', done => {
  33. props.query = { selectedQueryType: MetricFindQueryTypes.LabelKeys };
  34. props.onChange = (query, definition) => {
  35. expect(definition).toBe('Stackdriver - Labels Keys');
  36. done();
  37. };
  38. renderer.create(<StackdriverVariableQueryEditor {...props} />).toJSON();
  39. });
  40. });
  41. });