VariableQueryEditor.test.tsx 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. extractServicesFromMetricDescriptors: () => [],
  9. }));
  10. const props: VariableQueryProps = {
  11. onChange: (query, definition) => {},
  12. query: {},
  13. datasource: {
  14. getMetricTypes: async p => [],
  15. },
  16. templateSrv: { replace: s => s, variables: [] },
  17. };
  18. describe('VariableQueryEditor', () => {
  19. it('renders correctly', () => {
  20. const tree = renderer.create(<StackdriverVariableQueryEditor {...props} />).toJSON();
  21. expect(tree).toMatchSnapshot();
  22. });
  23. describe('and a new variable is created', () => {
  24. it('should trigger a query using the first query type in the array', done => {
  25. props.onChange = (query, definition) => {
  26. expect(definition).toBe('Stackdriver - Services');
  27. done();
  28. };
  29. renderer.create(<StackdriverVariableQueryEditor {...props} />).toJSON();
  30. });
  31. });
  32. describe('and an existing variable is edited', () => {
  33. it('should trigger new query using the saved query type', done => {
  34. props.query = { selectedQueryType: MetricFindQueryTypes.LabelKeys };
  35. props.onChange = (query, definition) => {
  36. expect(definition).toBe('Stackdriver - Label Keys');
  37. done();
  38. };
  39. renderer.create(<StackdriverVariableQueryEditor {...props} />).toJSON();
  40. });
  41. });
  42. });