mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-25 18:03:50 +00:00
[web] Add tests for js/components/Header/MainMenu.js
This commit is contained in:
parent
fbaa842a46
commit
9c90d13149
26
web/src/js/__tests__/components/Header/MainMenuSpec.js
Normal file
26
web/src/js/__tests__/components/Header/MainMenuSpec.js
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
jest.mock('../../../ducks/settings')
|
||||||
|
|
||||||
|
import React from 'react'
|
||||||
|
import renderer from 'react-test-renderer'
|
||||||
|
import MainMenu, { setIntercept } from '../../../components/Header/MainMenu'
|
||||||
|
import { Provider } from 'react-redux'
|
||||||
|
import { update as updateSettings } from '../../../ducks/settings'
|
||||||
|
import { TStore } from '../../ducks/tutils'
|
||||||
|
|
||||||
|
describe('MainMenu Component', () => {
|
||||||
|
let store = TStore()
|
||||||
|
|
||||||
|
it('should render and connect to state', () => {
|
||||||
|
let provider = renderer.create(
|
||||||
|
<Provider store={store}>
|
||||||
|
<MainMenu/>
|
||||||
|
</Provider>),
|
||||||
|
tree = provider.toJSON()
|
||||||
|
expect(tree).toMatchSnapshot()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should handle change on interceptInput', () => {
|
||||||
|
setIntercept('foo')
|
||||||
|
expect(updateSettings).toBeCalledWith({ intercept: 'foo' })
|
||||||
|
})
|
||||||
|
})
|
@ -0,0 +1,86 @@
|
|||||||
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`MainMenu Component should render and connect to state 1`] = `
|
||||||
|
<div
|
||||||
|
className="menu-main"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
className="filter-input input-group"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="input-group-addon"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
className="fa fa-fw fa-search"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"color": "black",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
<input
|
||||||
|
className="form-control"
|
||||||
|
onBlur={[Function]}
|
||||||
|
onChange={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
onKeyDown={[Function]}
|
||||||
|
placeholder="Search"
|
||||||
|
type="text"
|
||||||
|
value="~u foo"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="filter-input input-group"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="input-group-addon"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
className="fa fa-fw fa-tag"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"color": "hsl(48, 100%, 50%)",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
<input
|
||||||
|
className="form-control"
|
||||||
|
onBlur={[Function]}
|
||||||
|
onChange={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
onKeyDown={[Function]}
|
||||||
|
placeholder="Highlight"
|
||||||
|
type="text"
|
||||||
|
value="~a bar"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
className="filter-input input-group"
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
className="input-group-addon"
|
||||||
|
>
|
||||||
|
<i
|
||||||
|
className="fa fa-fw fa-pause"
|
||||||
|
style={
|
||||||
|
Object {
|
||||||
|
"color": "hsl(208, 56%, 53%)",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
</span>
|
||||||
|
<input
|
||||||
|
className="form-control"
|
||||||
|
onBlur={[Function]}
|
||||||
|
onChange={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
onKeyDown={[Function]}
|
||||||
|
placeholder="Intercept"
|
||||||
|
type="text"
|
||||||
|
value=""
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
@ -17,6 +17,10 @@ export default function MainMenu() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function setIntercept(intercept) {
|
||||||
|
updateSettings({ intercept })
|
||||||
|
}
|
||||||
|
|
||||||
const InterceptInput = connect(
|
const InterceptInput = connect(
|
||||||
state => ({
|
state => ({
|
||||||
value: state.settings.intercept || '',
|
value: state.settings.intercept || '',
|
||||||
@ -24,7 +28,7 @@ const InterceptInput = connect(
|
|||||||
type: 'pause',
|
type: 'pause',
|
||||||
color: 'hsl(208, 56%, 53%)'
|
color: 'hsl(208, 56%, 53%)'
|
||||||
}),
|
}),
|
||||||
{ onChange: intercept => updateSettings({ intercept }) }
|
{ onChange: setIntercept }
|
||||||
)(FilterInput);
|
)(FilterInput);
|
||||||
|
|
||||||
const FlowFilterInput = connect(
|
const FlowFilterInput = connect(
|
||||||
|
Loading…
Reference in New Issue
Block a user