Graph.test.tsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import React from 'react';
  2. import { shallow } from 'enzyme';
  3. import Graph from './Graph';
  4. import { mockData } from './__mocks__/mockData';
  5. const setup = (propOverrides?: object) => {
  6. const props = Object.assign(
  7. {
  8. data: mockData().slice(0, 19),
  9. options: {
  10. interval: '20s',
  11. range: { from: 'now-6h', to: 'now' },
  12. targets: [
  13. {
  14. format: 'time_series',
  15. instant: false,
  16. hinting: true,
  17. expr: 'prometheus_http_request_duration_seconds_bucket',
  18. },
  19. ],
  20. },
  21. },
  22. propOverrides
  23. );
  24. // Enzyme.shallow did not work well with jquery.flop. Mocking the draw function.
  25. Graph.prototype.draw = jest.fn();
  26. const wrapper = shallow(<Graph {...props} />);
  27. const instance = wrapper.instance() as Graph;
  28. return {
  29. wrapper,
  30. instance,
  31. };
  32. };
  33. describe('Render', () => {
  34. it('should render component', () => {
  35. const { wrapper } = setup();
  36. expect(wrapper).toMatchSnapshot();
  37. });
  38. it('should render component with disclaimer', () => {
  39. const { wrapper } = setup({
  40. data: mockData(),
  41. });
  42. expect(wrapper).toMatchSnapshot();
  43. });
  44. it('should show query return no time series', () => {
  45. const { wrapper } = setup({
  46. data: [],
  47. });
  48. expect(wrapper).toMatchSnapshot();
  49. });
  50. });