teamMembers.spec.jsx 1.6 KB

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