TeamPages.test.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import React from 'react';
  2. import { shallow } from 'enzyme';
  3. import { TeamPages, Props } from './TeamPages';
  4. import { NavModel, Team } from '../../types';
  5. import { getMockTeam } from './__mocks__/teamMocks';
  6. jest.mock('app/core/config', () => ({
  7. buildInfo: { isEnterprise: true },
  8. }));
  9. const setup = (propOverrides?: object) => {
  10. const props: Props = {
  11. navModel: {} as NavModel,
  12. teamId: 1,
  13. loadTeam: jest.fn(),
  14. pageName: 'members',
  15. team: {} as Team,
  16. };
  17. Object.assign(props, propOverrides);
  18. const wrapper = shallow(<TeamPages {...props} />);
  19. const instance = wrapper.instance();
  20. return {
  21. wrapper,
  22. instance,
  23. };
  24. };
  25. describe('Render', () => {
  26. it('should render component', () => {
  27. const { wrapper } = setup();
  28. expect(wrapper).toMatchSnapshot();
  29. });
  30. it('should render member page if team not empty', () => {
  31. const { wrapper } = setup({
  32. team: getMockTeam(),
  33. });
  34. expect(wrapper).toMatchSnapshot();
  35. });
  36. it('should render settings and preferences page', () => {
  37. const { wrapper } = setup({
  38. team: getMockTeam(),
  39. pageName: 'settings',
  40. preferences: {
  41. homeDashboardId: 1,
  42. theme: 'Default',
  43. timezone: 'Default',
  44. },
  45. });
  46. expect(wrapper).toMatchSnapshot();
  47. });
  48. it('should render group sync page', () => {
  49. const { wrapper } = setup({
  50. team: getMockTeam(),
  51. pageName: 'groupsync',
  52. });
  53. expect(wrapper).toMatchSnapshot();
  54. });
  55. });