ruleBuilder.spec.jsx 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import React from 'react';
  2. import {mount} from 'enzyme';
  3. import MemberListStore from 'app/stores/memberListStore';
  4. import TeamStore from 'app/stores/teamStore';
  5. import RuleBuilder from 'app/views/settings/project/projectOwnership/ruleBuilder';
  6. jest.mock('jquery');
  7. describe('ProjectTeamsSettings', function() {
  8. let sandbox;
  9. let project;
  10. let handleAdd;
  11. let USER_1 = TestStubs.User({
  12. id: '1',
  13. name: 'Jane Doe',
  14. email: 'janedoe@example.com',
  15. });
  16. let USER_2 = TestStubs.User({
  17. id: '2',
  18. name: 'John Smith',
  19. email: 'johnsmith@example.com',
  20. });
  21. let TEAM_1 = TestStubs.Team({
  22. id: '3',
  23. name: 'COOL TEAM',
  24. slug: 'cool-team',
  25. });
  26. beforeEach(function() {
  27. sandbox = sinon.sandbox.create();
  28. sandbox.stub(MemberListStore, 'getAll').returns([USER_1, USER_2]);
  29. sandbox.stub(TeamStore, 'getAll').returns([TEAM_1]);
  30. handleAdd = jest.fn();
  31. project = TestStubs.Project();
  32. });
  33. afterEach(function() {
  34. sandbox.restore();
  35. });
  36. describe('render()', function() {
  37. it('renders', function() {
  38. let wrapper = mount(
  39. <RuleBuilder project={project} onAddRule={handleAdd} />,
  40. TestStubs.routerContext()
  41. );
  42. let add = wrapper.find('RuleAddButton');
  43. add.simulate('click');
  44. expect(handleAdd).not.toHaveBeenCalled();
  45. let text = wrapper.find('BuilderInput');
  46. text.simulate('change', {target: {value: 'some/path/*'}});
  47. add.simulate('click');
  48. expect(handleAdd).not.toHaveBeenCalled();
  49. let openDropdown = wrapper.find('BuilderDropdownButton');
  50. openDropdown.simulate('click');
  51. let user = wrapper.find('AutoCompleteItem').first();
  52. user.simulate('click');
  53. add.simulate('click');
  54. expect(handleAdd).toHaveBeenCalled();
  55. expect(wrapper).toMatchSnapshot();
  56. });
  57. });
  58. });