VariableQueryEditor.test.tsx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. };
  16. describe('VariableQueryEditor', () => {
  17. it('renders correctly', () => {
  18. const tree = renderer.create(<StackdriverVariableQueryEditor {...props} />).toJSON();
  19. expect(tree).toMatchSnapshot();
  20. });
  21. describe('and a new variable is created', () => {
  22. it('should trigger a query using the first query type in the array', done => {
  23. props.onChange = (query, definition) => {
  24. expect(definition).toBe('Stackdriver - Metric Types');
  25. done();
  26. };
  27. renderer.create(<StackdriverVariableQueryEditor {...props} />).toJSON();
  28. });
  29. });
  30. describe('and an existing variable is edited', () => {
  31. it('should trigger new query using the saved query type', done => {
  32. props.query = { selectedQueryType: MetricFindQueryTypes.MetricLabels };
  33. props.onChange = (query, definition) => {
  34. expect(definition).toBe('Stackdriver - Metric Labels');
  35. done();
  36. };
  37. renderer.create(<StackdriverVariableQueryEditor {...props} />).toJSON();
  38. });
  39. });
  40. });