UsersListPage.test.tsx 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import React from 'react';
  2. import { shallow } from 'enzyme';
  3. import { UsersListPage, Props } from './UsersListPage';
  4. import { Invitee, NavModel, OrgUser } from 'app/types';
  5. import { getMockUser } from './__mocks__/userMocks';
  6. import appEvents from '../../core/app_events';
  7. jest.mock('../../core/app_events', () => ({
  8. emit: jest.fn(),
  9. }));
  10. const setup = (propOverrides?: object) => {
  11. const props: Props = {
  12. navModel: {
  13. main: {
  14. text: 'Configuration'
  15. },
  16. node: {
  17. text: 'Users'
  18. }
  19. } as NavModel,
  20. users: [] as OrgUser[],
  21. invitees: [] as Invitee[],
  22. searchQuery: '',
  23. externalUserMngInfo: '',
  24. loadInvitees: jest.fn(),
  25. loadUsers: jest.fn(),
  26. updateUser: jest.fn(),
  27. removeUser: jest.fn(),
  28. setUsersSearchQuery: jest.fn(),
  29. hasFetched: false,
  30. };
  31. Object.assign(props, propOverrides);
  32. const wrapper = shallow(<UsersListPage {...props} />);
  33. const instance = wrapper.instance() as UsersListPage;
  34. return {
  35. wrapper,
  36. instance,
  37. };
  38. };
  39. describe('Render', () => {
  40. it('should render component', () => {
  41. const { wrapper } = setup();
  42. expect(wrapper).toMatchSnapshot();
  43. });
  44. it('should render List page', () => {
  45. const { wrapper } = setup({
  46. hasFetched: true,
  47. });
  48. expect(wrapper).toMatchSnapshot();
  49. });
  50. });
  51. describe('Functions', () => {
  52. it('should emit show remove user modal', () => {
  53. const { instance } = setup();
  54. const mockUser = getMockUser();
  55. instance.onRemoveUser(mockUser);
  56. expect(appEvents.emit).toHaveBeenCalled();
  57. });
  58. });