teamMembers.spec.jsx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import React from 'react';
  2. import {shallow, mount} from 'enzyme';
  3. import {Client} from 'app/api';
  4. import TeamMembers from 'app/views/settings/organizationTeams/teamMembers';
  5. describe('TeamMembers', function() {
  6. let routerContext = TestStubs.routerContext();
  7. let org = routerContext.context.organization;
  8. let team = TestStubs.Team();
  9. let members = TestStubs.Members();
  10. beforeEach(function() {
  11. Client.clearMockResponses();
  12. Client.addMockResponse({
  13. url: `/organizations/${org.slug}/members/`,
  14. method: 'GET',
  15. body: members,
  16. });
  17. Client.addMockResponse({
  18. url: `/teams/${org.slug}/${team.slug}/members/`,
  19. method: 'GET',
  20. body: members,
  21. });
  22. });
  23. it('renders', function() {
  24. let wrapper = shallow(
  25. <TeamMembers params={{orgId: org.slug, teamId: team.slug}} organization={org} />,
  26. routerContext
  27. );
  28. expect(wrapper).toMatchSnapshot();
  29. });
  30. it('can remove a team', function() {
  31. let endpoint = `/organizations/${org.slug}/members/${members[0]
  32. .id}/teams/${team.slug}/`;
  33. let mock = Client.addMockResponse({
  34. url: endpoint,
  35. method: 'DELETE',
  36. statusCode: 200,
  37. });
  38. let wrapper = mount(
  39. <TeamMembers params={{orgId: org.slug, teamId: team.slug}} organization={org} />,
  40. routerContext
  41. );
  42. expect(mock).not.toHaveBeenCalled();
  43. wrapper
  44. .find('Button')
  45. .at(1)
  46. .simulate('click');
  47. expect(mock).toHaveBeenCalledWith(
  48. endpoint,
  49. expect.objectContaining({
  50. method: 'DELETE',
  51. })
  52. );
  53. });
  54. });