diff options
| author | Maximilian Hils <git@maximilianhils.com> | 2017-06-02 13:26:38 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-06-02 13:26:38 +0200 | 
| commit | a71f76368e4a083473bf2e388e6743b7b1512ee7 (patch) | |
| tree | fde83389b111086ceb036c6867924c4f6ba2b099 | |
| parent | 7fef4efd81495eea203af8a938d0ba89432813e2 (diff) | |
| parent | 465178323f335ef446760854d4f9a46731397dc1 (diff) | |
| download | mitmproxy-a71f76368e4a083473bf2e388e6743b7b1512ee7.tar.gz mitmproxy-a71f76368e4a083473bf2e388e6743b7b1512ee7.tar.bz2 mitmproxy-a71f76368e4a083473bf2e388e6743b7b1512ee7.zip | |
Merge pull request #2365 from MatthewShao/jest-dev
[WIP][web] Add tests for components/ContentView
4 files changed, 95 insertions, 0 deletions
| diff --git a/web/src/js/__tests__/components/ContentView/CodeEditorSpec.js b/web/src/js/__tests__/components/ContentView/CodeEditorSpec.js new file mode 100644 index 00000000..ba7acf07 --- /dev/null +++ b/web/src/js/__tests__/components/ContentView/CodeEditorSpec.js @@ -0,0 +1,26 @@ +jest.mock('react-codemirror') +import React from 'react' +import renderer from 'react-test-renderer' +import CodeEditor from '../../../components/ContentView/CodeEditor' + +describe('CodeEditor Component', () => { +    let content = "foo content", +        changeFn = jest.fn(), +        codeEditor = renderer.create( +            <CodeEditor content={content} onChange={changeFn}/> +        ), +        tree = codeEditor.toJSON() +     +    it('should render correctly', () => { +        // This actually does not render properly, but getting a full CodeMirror rendering +        // is cumbersome. This is hopefully good enough. +        // see: https://github.com/mitmproxy/mitmproxy/pull/2365#discussion_r119766850 +        expect(tree).toMatchSnapshot() +    }) + +    it('should handle key down', () => { +        let mockEvent = { stopPropagation: jest.fn() } +        tree.props.onKeyDown(mockEvent) +        expect(mockEvent.stopPropagation).toBeCalled() +    }) +}) diff --git a/web/src/js/__tests__/components/ContentView/ContentViewOptionsSpec.js b/web/src/js/__tests__/components/ContentView/ContentViewOptionsSpec.js new file mode 100644 index 00000000..68afb4ec --- /dev/null +++ b/web/src/js/__tests__/components/ContentView/ContentViewOptionsSpec.js @@ -0,0 +1,20 @@ +import React from 'react' +import renderer from 'react-test-renderer' +import ContentViewOptions from '../../../components/ContentView/ContentViewOptions' +import { Provider } from 'react-redux' +import { TFlow, TStore } from '../../ducks/tutils' +import { uploadContent } from '../../../ducks/flows' + +let tflow = new TFlow() + +describe('ContentViewOptions Component', () => { +    let store = TStore() +    it('should render correctly', () => { +        let provider = renderer.create( +            <Provider store={store}> +                <ContentViewOptions flow={tflow} message={tflow.response} uploadContent={uploadContent}/> +            </Provider>), +            tree = provider.toJSON() +        expect(tree).toMatchSnapshot() +    }) +}) diff --git a/web/src/js/__tests__/components/ContentView/__snapshots__/CodeEditorSpec.js.snap b/web/src/js/__tests__/components/ContentView/__snapshots__/CodeEditorSpec.js.snap new file mode 100644 index 00000000..7e688a60 --- /dev/null +++ b/web/src/js/__tests__/components/ContentView/__snapshots__/CodeEditorSpec.js.snap @@ -0,0 +1,8 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`CodeEditor Component should render correctly 1`] = ` +<div +  className="codeeditor" +  onKeyDown={[Function]} +/> +`; diff --git a/web/src/js/__tests__/components/ContentView/__snapshots__/ContentViewOptionsSpec.js.snap b/web/src/js/__tests__/components/ContentView/__snapshots__/ContentViewOptionsSpec.js.snap new file mode 100644 index 00000000..e3561ec1 --- /dev/null +++ b/web/src/js/__tests__/components/ContentView/__snapshots__/ContentViewOptionsSpec.js.snap @@ -0,0 +1,41 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`ContentViewOptions Component should render correctly 1`] = ` +<div +  className="view-options" +> +  <span> +    <b> +      View: +    </b> +     edit +  </span> +    +  <a +    className="btn btn-default btn-xs" +    href="/flows/d91165be-ca1f-4612-88a9-c0f8696f3e29/response/content" +    title="Download the content of the flow." +  > +    <i +      className="fa fa-download" +    /> +  </a> +    +  <a +    className="btn btn-default btn-xs" +    href="#" +    onClick={[Function]} +    title="Upload a file to replace the content." +  > +    <i +      className="fa fa-fw fa-upload" +    /> +    <input +      className="hidden" +      onChange={[Function]} +      type="file" +    /> +  </a> +    +</div> +`; | 
