Config.spec.tsx 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import React from 'react';
  2. import { create } from 'react-test-renderer';
  3. import { mount } from 'enzyme';
  4. import { containerRendersView, TestRouterWrapper } from 'lib/testHelpers';
  5. import { clusterConnectConnectorConfigPath } from 'lib/paths';
  6. import ConfigContainer from 'components/Connect/Details/Config/ConfigContainer';
  7. import Config, { ConfigProps } from 'components/Connect/Details/Config/Config';
  8. import { connector } from 'redux/reducers/connect/__test__/fixtures';
  9. jest.mock('components/common/PageLoader/PageLoader', () => 'mock-PageLoader');
  10. jest.mock('components/common/JSONEditor/JSONEditor', () => 'mock-JSONEditor');
  11. describe('Config', () => {
  12. containerRendersView(<ConfigContainer />, Config);
  13. describe('view', () => {
  14. const pathname = clusterConnectConnectorConfigPath(
  15. ':clusterName',
  16. ':connectName',
  17. ':connectorName'
  18. );
  19. const clusterName = 'my-cluster';
  20. const connectName = 'my-connect';
  21. const connectorName = 'my-connector';
  22. const setupWrapper = (props: Partial<ConfigProps> = {}) => (
  23. <TestRouterWrapper
  24. pathname={pathname}
  25. urlParams={{ clusterName, connectName, connectorName }}
  26. >
  27. <Config
  28. fetchConfig={jest.fn()}
  29. isConfigFetching={false}
  30. config={connector.config}
  31. {...props}
  32. />
  33. </TestRouterWrapper>
  34. );
  35. it('matches snapshot', () => {
  36. const wrapper = create(setupWrapper());
  37. expect(wrapper.toJSON()).toMatchSnapshot();
  38. });
  39. it('matches snapshot when fetching config', () => {
  40. const wrapper = create(setupWrapper({ isConfigFetching: true }));
  41. expect(wrapper.toJSON()).toMatchSnapshot();
  42. });
  43. it('matches snapshot when no config', () => {
  44. const wrapper = create(setupWrapper({ config: null }));
  45. expect(wrapper.toJSON()).toMatchSnapshot();
  46. });
  47. it('fetches config on mount', () => {
  48. const fetchConfig = jest.fn();
  49. mount(setupWrapper({ fetchConfig }));
  50. expect(fetchConfig).toHaveBeenCalledTimes(1);
  51. expect(fetchConfig).toHaveBeenCalledWith(
  52. clusterName,
  53. connectName,
  54. connectorName,
  55. true
  56. );
  57. });
  58. });
  59. });