diff options
author | Maximilian Hils <git@maximilianhils.com> | 2017-06-26 12:32:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-26 12:32:11 +0200 |
commit | 35430bf99f36177978b0156b47e010198f679e27 (patch) | |
tree | 1692f7231ca93e2e494b29b397119f7054f410d5 /web/src/js/__tests__/components/FlowTableSpec.js | |
parent | 646f26b0e288109f0c975d616a242d17442792eb (diff) | |
parent | 9ff29cdb2b790e0b88fb8a5519dc13785f3c9819 (diff) | |
download | mitmproxy-35430bf99f36177978b0156b47e010198f679e27.tar.gz mitmproxy-35430bf99f36177978b0156b47e010198f679e27.tar.bz2 mitmproxy-35430bf99f36177978b0156b47e010198f679e27.zip |
Merge pull request #2413 from MatthewShao/jest-dev
[web] Add tests for js/components/*
Diffstat (limited to 'web/src/js/__tests__/components/FlowTableSpec.js')
-rw-r--r-- | web/src/js/__tests__/components/FlowTableSpec.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/web/src/js/__tests__/components/FlowTableSpec.js b/web/src/js/__tests__/components/FlowTableSpec.js new file mode 100644 index 00000000..4d8de12c --- /dev/null +++ b/web/src/js/__tests__/components/FlowTableSpec.js @@ -0,0 +1,50 @@ +import React from 'react' +import renderer from 'react-test-renderer' +import FlowTable from '../../components/FlowTable' +import TestUtils from 'react-dom/test-utils' +import { TFlow, TStore } from '../ducks/tutils' +import { Provider } from 'react-redux' + +window.addEventListener = jest.fn() + +describe('FlowTable Component', () => { + let selectFn = jest.fn(), + tflow = TFlow(), + store = TStore() + + it('should render correctly', () => { + let provider = renderer.create( + <Provider store={store}> + <FlowTable onSelect={selectFn} flows={[tflow]}/> + </Provider>), + tree = provider.toJSON() + expect(tree).toMatchSnapshot() + }) + + let provider = TestUtils.renderIntoDocument( + <Provider store={store} > + <FlowTable onSelect={selectFn} flows={[tflow]}/> + </Provider>), + flowTable = TestUtils.findRenderedComponentWithType(provider, FlowTable) + + it('should handle componentWillUnmount', () => { + flowTable.componentWillUnmount() + expect(window.addEventListener).toBeCalledWith('resize', flowTable.onViewportUpdate) + }) + + it('should handle componentDidUpdate', () => { + // flowTable.shouldScrollIntoView == false + expect(flowTable.componentDidUpdate()).toEqual(undefined) + // rowTop - headHeight < viewportTop + flowTable.shouldScrollIntoView = true + flowTable.componentDidUpdate() + // rowBottom > viewportTop + viewportHeight + flowTable.shouldScrollIntoView = true + flowTable.componentDidUpdate() + }) + + it('should handle componentWillReceiveProps', () => { + flowTable.componentWillReceiveProps({selected: tflow}) + expect(flowTable.shouldScrollIntoView).toBeTruthy() + }) +}) |