TeamList.test.tsx 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import React from 'react';
  2. import { shallow } from 'enzyme';
  3. import { Props, TeamList } from './TeamList';
  4. import { NavModel, Team } from '../../types';
  5. import { getMockTeam, getMultipleMockTeams } from './__mocks__/teamMocks';
  6. const setup = (propOverrides?: object) => {
  7. const props: Props = {
  8. navModel: {} as NavModel,
  9. teams: [] as Team[],
  10. loadTeams: jest.fn(),
  11. deleteTeam: jest.fn(),
  12. setSearchQuery: jest.fn(),
  13. searchQuery: '',
  14. teamsCount: 0,
  15. hasFetched: false,
  16. };
  17. Object.assign(props, propOverrides);
  18. const wrapper = shallow(<TeamList {...props} />);
  19. const instance = wrapper.instance() as TeamList;
  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 teams table', () => {
  31. const { wrapper } = setup({
  32. teams: getMultipleMockTeams(5),
  33. teamsCount: 5,
  34. hasFetched: true,
  35. });
  36. expect(wrapper).toMatchSnapshot();
  37. });
  38. });
  39. describe('Life cycle', () => {
  40. it('should call loadTeams', () => {
  41. const { instance } = setup();
  42. instance.componentDidMount();
  43. expect(instance.props.loadTeams).toHaveBeenCalled();
  44. });
  45. });
  46. describe('Functions', () => {
  47. describe('Delete team', () => {
  48. it('should call delete team', () => {
  49. const { instance } = setup();
  50. instance.deleteTeam(getMockTeam());
  51. expect(instance.props.deleteTeam).toHaveBeenCalledWith(1);
  52. });
  53. });
  54. describe('on search query change', () => {
  55. it('should call setSearchQuery', () => {
  56. const { instance } = setup();
  57. const mockEvent = { target: { value: 'test' } };
  58. instance.onSearchQueryChange(mockEvent);
  59. expect(instance.props.setSearchQuery).toHaveBeenCalledWith('test');
  60. });
  61. });
  62. });