noteInput.spec.jsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import React from 'react';
  2. import {mount, shallow} from 'enzyme';
  3. import NoteInput from 'app/components/activity/noteInput';
  4. import {Client} from 'app/api';
  5. jest.mock('app/api');
  6. describe('NoteInput', function() {
  7. let spy;
  8. beforeAll(function() {
  9. Client.addMockResponse({
  10. url: '/issues/groupId/comments/',
  11. method: 'POST',
  12. });
  13. });
  14. beforeEach(function() {
  15. spy = jest.spyOn(Client.prototype, 'request');
  16. });
  17. afterEach(function() {
  18. spy.mockReset();
  19. spy.mockRestore();
  20. });
  21. it('renders', function() {
  22. let wrapper = shallow(
  23. <NoteInput group={{}} memberList={[]} sessionUser={{}} />,
  24. TestStubs.routerContext()
  25. );
  26. expect(wrapper).toMatchSnapshot();
  27. });
  28. it('submits when meta + enter is pressed', function() {
  29. let wrapper = mount(
  30. <NoteInput group={{id: 'groupId'}} memberList={[]} sessionUser={{}} />,
  31. TestStubs.routerContext()
  32. );
  33. let input = wrapper.find('textarea');
  34. input.simulate('keyDown', {key: 'Enter', metaKey: true});
  35. expect(spy).toHaveBeenCalled();
  36. });
  37. it('submits when ctrl + enter is pressed', function() {
  38. let wrapper = mount(
  39. <NoteInput group={{id: 'groupId'}} memberList={[]} sessionUser={{}} />,
  40. TestStubs.routerContext()
  41. );
  42. let input = wrapper.find('textarea');
  43. input.simulate('keyDown', {key: 'Enter', ctrlKey: true});
  44. expect(spy).toHaveBeenCalled();
  45. });
  46. });