From b257e179862d0b895d6e7be30136018515de564c Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Thu, 21 Jun 2018 00:27:02 +0300 Subject: initial DOM tests --- .../src/components/__tests__/MessageInput-test.js | 47 ++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 vnext/src/components/__tests__/MessageInput-test.js (limited to 'vnext/src/components') diff --git a/vnext/src/components/__tests__/MessageInput-test.js b/vnext/src/components/__tests__/MessageInput-test.js new file mode 100644 index 00000000..f6a452d8 --- /dev/null +++ b/vnext/src/components/__tests__/MessageInput-test.js @@ -0,0 +1,47 @@ +import React from 'react'; +import { mount } from 'enzyme'; +import { configure } from 'enzyme'; +import Adapter from 'enzyme-adapter-react-16'; + +import MessageInput from '../MessageInput'; + +configure({ adapter: new Adapter() }); + +const testMessage = { + mid: 1, + user: { uid: 1, uname: 'ugnich' }, + body: 'test message', + timestamp: new Date().toISOString() +}; + +it('Gives immediate focus on to textarea on load', () => { + const wrapper = mount( {}} />); + const textareaRef = wrapper.instance().textarea; + + jest.spyOn(textareaRef.current, 'focus'); + + wrapper.instance().componentDidMount(); + expect(textareaRef.current.focus).toHaveBeenCalledTimes(1); +}); + +it('Submits on ctrl-enter', () => { + const onSend = jest.fn(); + const messageInput = mount(); + + let textarea = messageInput.find('textarea'); + textarea.simulate('keypress', { + charCode: 32, + which: 32, + keyCode: 32, + ctrlKey: false + }); + expect(onSend).toHaveBeenCalledTimes(0); + // TODO: test for body change + textarea.simulate('keypress', { + charCode: 13, + which: 13, + keyCode: 13, + ctrlKey: true + }); + expect(onSend).toHaveBeenCalledTimes(1); +}); \ No newline at end of file -- cgit v1.2.3