[web] Add tests for js/components/Header/MenuToogle.jsx

This commit is contained in:
Matthew Shao 2017-05-27 22:56:10 +08:00
parent 62d39200d0
commit 134331b997
2 changed files with 105 additions and 0 deletions

View File

@ -0,0 +1,55 @@
import React from 'react'
import renderer from 'react-test-renderer'
import { MenuToggle, SettingsToggle, EventlogToggle } from '../../../components/Header/MenuToggle'
import { Provider } from 'react-redux'
import { REQUEST_UPDATE } from '../../../ducks/settings'
import { TStore } from '../../ducks/tutils'
global.fetch = jest.fn()
describe('MenuToggle Component', () => {
it('should render correctly', () => {
let changeFn = jest.fn(),
menuToggle = renderer.create(
<MenuToggle onChange={changeFn} value={true}>
<p>foo children</p>
</MenuToggle>),
tree = menuToggle.toJSON()
expect(tree).toMatchSnapshot()
})
})
describe('SettingToggle Component', () => {
let store = TStore(),
provider = renderer.create(
<Provider store={store}>
<SettingsToggle setting='anticache'>
<p>foo children</p>
</SettingsToggle>
</Provider>),
tree = provider.toJSON()
it('should render and connect to state', () => {
expect(tree).toMatchSnapshot()
})
it('should handle change', () => {
let menuToggle = tree.children[0].children[0]
menuToggle.props.onChange()
expect(store.getActions()).toEqual([{ type: REQUEST_UPDATE }])
})
})
describe('EventlogToggle Component', () => {
let store = TStore(),
changFn = jest.fn(),
provider = renderer.create(
<Provider store={store}>
<EventlogToggle value={false} onChange={changFn}/>
</Provider>
),
tree = provider.toJSON()
it('should render and connect to state', () => {
expect(tree).toMatchSnapshot()
})
})

View File

@ -0,0 +1,50 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`EventlogToggle Component should render and connect to state 1`] = `
<div
className="menu-entry"
>
<label>
<input
checked={true}
onChange={[Function]}
type="checkbox"
/>
Display Event Log
</label>
</div>
`;
exports[`MenuToggle Component should render correctly 1`] = `
<div
className="menu-entry"
>
<label>
<input
checked={true}
onChange={[Function]}
type="checkbox"
/>
<p>
foo children
</p>
</label>
</div>
`;
exports[`SettingToggle Component should render and connect to state 1`] = `
<div
className="menu-entry"
>
<label>
<input
checked={true}
onChange={[Function]}
type="checkbox"
/>
<p>
foo children
</p>
</label>
</div>
`;