aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2017-05-22 18:49:32 +0200
committerGitHub <noreply@github.com>2017-05-22 18:49:32 +0200
commit1ca98c83aabf7ce6e565aa6cedea61fdf5f193c9 (patch)
tree3d583745bccb97d9f1f26cfc6a457ee58a48349e
parent2222f0b65a3fbc2012c9c76fa532d2ccaa565575 (diff)
parent8b5160ce5815954ab7188f1743fbe515a6284d59 (diff)
downloadmitmproxy-1ca98c83aabf7ce6e565aa6cedea61fdf5f193c9.tar.gz
mitmproxy-1ca98c83aabf7ce6e565aa6cedea61fdf5f193c9.tar.bz2
mitmproxy-1ca98c83aabf7ce6e565aa6cedea61fdf5f193c9.zip
Merge pull request #2347 from MatthewShao/jest-dev
[web] Add tests for js/components/FlowTable
-rw-r--r--web/src/js/__tests__/components/FlowTable/FlowRowSpec.js21
-rw-r--r--web/src/js/__tests__/components/FlowTable/FlowTableHeadSpec.js32
-rw-r--r--web/src/js/__tests__/components/FlowTable/__snapshots__/FlowRowSpec.js.snap47
-rw-r--r--web/src/js/__tests__/components/FlowTable/__snapshots__/FlowTableHeadSpec.js.snap95
-rw-r--r--web/src/js/components/FlowTable/FlowTableHead.jsx2
5 files changed, 196 insertions, 1 deletions
diff --git a/web/src/js/__tests__/components/FlowTable/FlowRowSpec.js b/web/src/js/__tests__/components/FlowTable/FlowRowSpec.js
new file mode 100644
index 00000000..7dfc1dcd
--- /dev/null
+++ b/web/src/js/__tests__/components/FlowTable/FlowRowSpec.js
@@ -0,0 +1,21 @@
+import React from 'react'
+import renderer from 'react-test-renderer'
+import FlowRow from '../../../components/FlowTable/FlowRow'
+import { TFlow } from '../../ducks/tutils'
+
+describe('FlowRow Component', () => {
+ let tFlow = new TFlow(),
+ selectFn = jest.fn(),
+ flowRow = renderer.create(<FlowRow flow={tFlow} onSelect={selectFn}/>),
+ tree = flowRow.toJSON()
+
+ it('should render correctly', () => {
+ expect(tree).toMatchSnapshot()
+ })
+
+ it('should handle click', () => {
+ tree.props.onClick()
+ expect(selectFn).toBeCalledWith(tFlow.id)
+ })
+
+})
diff --git a/web/src/js/__tests__/components/FlowTable/FlowTableHeadSpec.js b/web/src/js/__tests__/components/FlowTable/FlowTableHeadSpec.js
new file mode 100644
index 00000000..51ff4ceb
--- /dev/null
+++ b/web/src/js/__tests__/components/FlowTable/FlowTableHeadSpec.js
@@ -0,0 +1,32 @@
+import React from 'react'
+import renderer from 'react-test-renderer'
+import ConnectedHead, { FlowTableHead } from '../../../components/FlowTable/FlowTableHead'
+import { Provider } from 'react-redux'
+import configureStore from 'redux-mock-store'
+
+const mockStore = configureStore()
+
+describe('FlowTableHead Component', () => {
+ let sortFn = jest.fn(),
+ flowTableHead = renderer.create(<FlowTableHead setSort={sortFn} sortDesc={true}/>),
+ tree =flowTableHead.toJSON()
+
+ it('should render correctly', () => {
+ expect(tree).toMatchSnapshot()
+ })
+
+ it('should handle click', () => {
+ tree.children[0].props.onClick()
+ expect(sortFn).toBeCalledWith('TLSColumn', false)
+ })
+
+ it('should connect to state', () => {
+ let store = mockStore({ flows: {sort: {desc: true, column: 'PathColumn'}} }),
+ provider = renderer.create(
+ <Provider store={store}>
+ <ConnectedHead/>
+ </Provider>),
+ tree = provider.toJSON()
+ expect(tree).toMatchSnapshot()
+ })
+})
diff --git a/web/src/js/__tests__/components/FlowTable/__snapshots__/FlowRowSpec.js.snap b/web/src/js/__tests__/components/FlowTable/__snapshots__/FlowRowSpec.js.snap
new file mode 100644
index 00000000..b065b746
--- /dev/null
+++ b/web/src/js/__tests__/components/FlowTable/__snapshots__/FlowRowSpec.js.snap
@@ -0,0 +1,47 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`FlowRow Component should render correctly 1`] = `
+<tr
+ className="has-request has-response"
+ onClick={[Function]}
+>
+ <td
+ className="col-tls col-tls-http"
+ />
+ <td
+ className="col-icon"
+ >
+ <div
+ className="resource-icon resource-icon-plain"
+ />
+ </td>
+ <td
+ className="col-path"
+ >
+ <i
+ className="fa fa-fw fa-exclamation pull-right"
+ />
+ http://address:22/path
+ </td>
+ <td
+ className="col-method"
+ >
+ GET
+ </td>
+ <td
+ className="col-status"
+ >
+ 200
+ </td>
+ <td
+ className="col-size"
+ >
+ 14b
+ </td>
+ <td
+ className="col-time"
+ >
+ 415381h
+ </td>
+</tr>
+`;
diff --git a/web/src/js/__tests__/components/FlowTable/__snapshots__/FlowTableHeadSpec.js.snap b/web/src/js/__tests__/components/FlowTable/__snapshots__/FlowTableHeadSpec.js.snap
new file mode 100644
index 00000000..3f066c6e
--- /dev/null
+++ b/web/src/js/__tests__/components/FlowTable/__snapshots__/FlowTableHeadSpec.js.snap
@@ -0,0 +1,95 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`FlowTableHead Component should connect to state 1`] = `
+<tr>
+ <th
+ className="col-tls"
+ onClick={[Function]}
+ >
+
+ </th>
+ <th
+ className="col-icon"
+ onClick={[Function]}
+ >
+
+ </th>
+ <th
+ className="col-path sort-desc"
+ onClick={[Function]}
+ >
+ Path
+ </th>
+ <th
+ className="col-method"
+ onClick={[Function]}
+ >
+ Method
+ </th>
+ <th
+ className="col-status"
+ onClick={[Function]}
+ >
+ Status
+ </th>
+ <th
+ className="col-size"
+ onClick={[Function]}
+ >
+ Size
+ </th>
+ <th
+ className="col-time"
+ onClick={[Function]}
+ >
+ Time
+ </th>
+</tr>
+`;
+
+exports[`FlowTableHead Component should render correctly 1`] = `
+<tr>
+ <th
+ className="col-tls"
+ onClick={[Function]}
+ >
+
+ </th>
+ <th
+ className="col-icon"
+ onClick={[Function]}
+ >
+
+ </th>
+ <th
+ className="col-path"
+ onClick={[Function]}
+ >
+ Path
+ </th>
+ <th
+ className="col-method"
+ onClick={[Function]}
+ >
+ Method
+ </th>
+ <th
+ className="col-status"
+ onClick={[Function]}
+ >
+ Status
+ </th>
+ <th
+ className="col-size"
+ onClick={[Function]}
+ >
+ Size
+ </th>
+ <th
+ className="col-time"
+ onClick={[Function]}
+ >
+ Time
+ </th>
+</tr>
+`;
diff --git a/web/src/js/components/FlowTable/FlowTableHead.jsx b/web/src/js/components/FlowTable/FlowTableHead.jsx
index 59ad73e2..bbd8c916 100644
--- a/web/src/js/components/FlowTable/FlowTableHead.jsx
+++ b/web/src/js/components/FlowTable/FlowTableHead.jsx
@@ -12,7 +12,7 @@ FlowTableHead.propTypes = {
sortColumn: PropTypes.string,
}
-function FlowTableHead({ sortColumn, sortDesc, setSort }) {
+export function FlowTableHead({ sortColumn, sortDesc, setSort }) {
const sortType = sortDesc ? 'sort-desc' : 'sort-asc'
return (