DataSourcesListPage.test.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import React from 'react';
  2. import { shallow } from 'enzyme';
  3. import { DataSourcesListPage, Props } from './DataSourcesListPage';
  4. import { NavModel, DataSourceSettings } from '@grafana/ui';
  5. import { LayoutModes } from '../../core/components/LayoutSelector/LayoutSelector';
  6. import { getMockDataSources } from './__mocks__/dataSourcesMocks';
  7. import { setDataSourcesSearchQuery, setDataSourcesLayoutMode } from './state/actions';
  8. const setup = (propOverrides?: object) => {
  9. const props: Props = {
  10. dataSources: [] as DataSourceSettings[],
  11. layoutMode: LayoutModes.Grid,
  12. loadDataSources: jest.fn(),
  13. navModel: {
  14. main: {
  15. text: 'Configuration',
  16. },
  17. node: {
  18. text: 'Data Sources',
  19. },
  20. } as NavModel,
  21. dataSourcesCount: 0,
  22. searchQuery: '',
  23. setDataSourcesSearchQuery,
  24. setDataSourcesLayoutMode,
  25. hasFetched: false,
  26. };
  27. Object.assign(props, propOverrides);
  28. return shallow(<DataSourcesListPage {...props} />);
  29. };
  30. describe('Render', () => {
  31. it('should render component', () => {
  32. const wrapper = setup();
  33. expect(wrapper).toMatchSnapshot();
  34. });
  35. it('should render action bar and datasources', () => {
  36. const wrapper = setup({
  37. dataSources: getMockDataSources(5),
  38. dataSourcesCount: 5,
  39. hasFetched: true,
  40. });
  41. expect(wrapper).toMatchSnapshot();
  42. });
  43. });