test: more coverage

This commit is contained in:
xidedix 2018-11-23 18:37:44 +01:00
parent 1cff0707ff
commit 7632881468
9 changed files with 70 additions and 6 deletions

View File

@ -44,6 +44,7 @@
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"test:cov": "react-scripts test --coverage",
"test:debug": "react-scripts --inspect-brk test --runInBand",
"eject": "react-scripts eject"
},
@ -58,5 +59,13 @@
"not dead",
"not ie <= 9",
"not op_mini all"
]
],
"jest": {
"collectCoverageFrom": [
"src/**/*.{js,jsx}",
"!**/*index.js",
"!src/serviceWorker.js",
"!src/polyfill.js"
]
}
}

View File

@ -1,9 +1,10 @@
import React from 'react';
import ReactDOM from 'react-dom';
import { MemoryRouter } from 'react-router-dom';
import DefaultHeader from '../DefaultHeader';
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<DefaultHeader />, div);
ReactDOM.render(<MemoryRouter><DefaultHeader /></MemoryRouter>, div);
ReactDOM.unmountComponentAtNode(div);
});

View File

@ -0,0 +1,10 @@
import React from 'react';
import ReactDOM from 'react-dom';
import {MemoryRouter, Route} from 'react-router-dom';
import DefaultLayout from '../DefaultLayout';
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<MemoryRouter><Route path="/" name="Home" component={DefaultLayout} /></MemoryRouter>, div);
ReactDOM.unmountComponentAtNode(div);
});

View File

@ -2,3 +2,14 @@ import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
configure({ adapter: new Adapter() });
if (global.document) {
document.createRange = () => ( {
setStart: () => {},
setEnd: () => {},
commonAncestorContainer: {
nodeName: 'BODY',
ownerDocument: document,
},
});
}

View File

@ -1,9 +1,25 @@
import React from 'react';
import ReactDOM from 'react-dom';
import { mount } from 'enzyme'
import Dropdowns from './Dropdowns';
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<Dropdowns />, div);
ReactDOM.unmountComponentAtNode(div);
const wrapper = mount(<Dropdowns />);
for (let i=0; i<5; i++) {
let Dropdown = wrapper.find('button.dropdown-toggle').at(i);
Dropdown.simulate('click');
expect(wrapper.state().dropdownOpen[i]).toEqual(true);
}
for (let i=0; i<2; i++) {
let Dropdown = wrapper.find('[data-toggle="dropdown"]').at(0);
Dropdown.simulate('click');
expect(wrapper.state().dropdownOpen[5]).toEqual(true);
let DropdownItem = wrapper.find('div.dropdown-menu > .dropdown-item').at(i);
DropdownItem.simulate('click');
expect(wrapper.state().dropdownOpen[5]).toEqual(false);
}
wrapper.unmount()
});

View File

@ -1,9 +1,10 @@
import React from 'react';
import ReactDOM from 'react-dom';
import { MemoryRouter } from 'react-router-dom';
import Login from './Login';
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<Login />, div);
ReactDOM.render(<MemoryRouter><Login/></MemoryRouter>, div);
ReactDOM.unmountComponentAtNode(div);
});

View File

@ -1,7 +1,7 @@
import React from 'react';
import Colors from './Colors';
import { shallow } from 'enzyme'
import { mount } from 'enzyme'
it('renders without crashing', () => {
shallow(<Colors />);
mount(<Colors />);
});

View File

@ -0,0 +1,15 @@
import React from 'react';
import {MemoryRouter} from 'react-router-dom';
import { mount } from 'enzyme'
import User from './User';
it('renders without crashing', () => {
const wrapper = mount(
<MemoryRouter>
<User match={{params: {id: "1"}, isExact: true, path: "/users/:id", name: "User details"}}/>
</MemoryRouter>
);
expect(wrapper.containsMatchingElement(<strong>Samppa Nori</strong>)).toEqual(true)
wrapper.unmount()
});

View File

@ -1,9 +1,10 @@
import React from 'react';
import ReactDOM from 'react-dom';
import { MemoryRouter } from 'react-router-dom';
import Users from './Users';
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<Users />, div);
ReactDOM.render(<MemoryRouter><Users /></MemoryRouter>, div);
ReactDOM.unmountComponentAtNode(div);
});