Skip to content

Commit 7632881

Browse files
committed
test: more coverage
1 parent 1cff070 commit 7632881

File tree

9 files changed

+70
-6
lines changed

9 files changed

+70
-6
lines changed

package.json

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
"start": "react-scripts start",
4545
"build": "react-scripts build",
4646
"test": "react-scripts test",
47+
"test:cov": "react-scripts test --coverage",
4748
"test:debug": "react-scripts --inspect-brk test --runInBand",
4849
"eject": "react-scripts eject"
4950
},
@@ -58,5 +59,13 @@
5859
"not dead",
5960
"not ie <= 9",
6061
"not op_mini all"
61-
]
62+
],
63+
"jest": {
64+
"collectCoverageFrom": [
65+
"src/**/*.{js,jsx}",
66+
"!**/*index.js",
67+
"!src/serviceWorker.js",
68+
"!src/polyfill.js"
69+
]
70+
}
6271
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
3+
import { MemoryRouter } from 'react-router-dom';
34
import DefaultHeader from '../DefaultHeader';
45

56
it('renders without crashing', () => {
67
const div = document.createElement('div');
7-
ReactDOM.render(<DefaultHeader />, div);
8+
ReactDOM.render(<MemoryRouter><DefaultHeader /></MemoryRouter>, div);
89
ReactDOM.unmountComponentAtNode(div);
910
});
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import React from 'react';
2+
import ReactDOM from 'react-dom';
3+
import {MemoryRouter, Route} from 'react-router-dom';
4+
import DefaultLayout from '../DefaultLayout';
5+
6+
it('renders without crashing', () => {
7+
const div = document.createElement('div');
8+
ReactDOM.render(<MemoryRouter><Route path="/" name="Home" component={DefaultLayout} /></MemoryRouter>, div);
9+
ReactDOM.unmountComponentAtNode(div);
10+
});

src/setupTests.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,14 @@ import { configure } from 'enzyme';
22
import Adapter from 'enzyme-adapter-react-16';
33

44
configure({ adapter: new Adapter() });
5+
6+
if (global.document) {
7+
document.createRange = () => ( {
8+
setStart: () => {},
9+
setEnd: () => {},
10+
commonAncestorContainer: {
11+
nodeName: 'BODY',
12+
ownerDocument: document,
13+
},
14+
});
15+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
3+
import { mount } from 'enzyme'
34
import Dropdowns from './Dropdowns';
45

56
it('renders without crashing', () => {
67
const div = document.createElement('div');
78
ReactDOM.render(<Dropdowns />, div);
89
ReactDOM.unmountComponentAtNode(div);
10+
const wrapper = mount(<Dropdowns />);
11+
for (let i=0; i<5; i++) {
12+
let Dropdown = wrapper.find('button.dropdown-toggle').at(i);
13+
Dropdown.simulate('click');
14+
expect(wrapper.state().dropdownOpen[i]).toEqual(true);
15+
}
16+
for (let i=0; i<2; i++) {
17+
let Dropdown = wrapper.find('[data-toggle="dropdown"]').at(0);
18+
Dropdown.simulate('click');
19+
expect(wrapper.state().dropdownOpen[5]).toEqual(true);
20+
let DropdownItem = wrapper.find('div.dropdown-menu > .dropdown-item').at(i);
21+
DropdownItem.simulate('click');
22+
expect(wrapper.state().dropdownOpen[5]).toEqual(false);
23+
}
24+
wrapper.unmount()
925
});

src/views/Pages/Login/Login.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
3+
import { MemoryRouter } from 'react-router-dom';
34
import Login from './Login';
45

56
it('renders without crashing', () => {
67
const div = document.createElement('div');
7-
ReactDOM.render(<Login />, div);
8+
ReactDOM.render(<MemoryRouter><Login/></MemoryRouter>, div);
89
ReactDOM.unmountComponentAtNode(div);
910
});

src/views/Theme/Colors/Colors.test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from 'react';
22
import Colors from './Colors';
3-
import { shallow } from 'enzyme'
3+
import { mount } from 'enzyme'
44

55
it('renders without crashing', () => {
6-
shallow(<Colors />);
6+
mount(<Colors />);
77
});

src/views/Users/User.test.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import React from 'react';
2+
import {MemoryRouter} from 'react-router-dom';
3+
import { mount } from 'enzyme'
4+
import User from './User';
5+
6+
7+
it('renders without crashing', () => {
8+
const wrapper = mount(
9+
<MemoryRouter>
10+
<User match={{params: {id: "1"}, isExact: true, path: "/users/:id", name: "User details"}}/>
11+
</MemoryRouter>
12+
);
13+
expect(wrapper.containsMatchingElement(<strong>Samppa Nori</strong>)).toEqual(true)
14+
wrapper.unmount()
15+
});

src/views/Users/Users.test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
3+
import { MemoryRouter } from 'react-router-dom';
34
import Users from './Users';
45

56
it('renders without crashing', () => {
67
const div = document.createElement('div');
7-
ReactDOM.render(<Users />, div);
8+
ReactDOM.render(<MemoryRouter><Users /></MemoryRouter>, div);
89
ReactDOM.unmountComponentAtNode(div);
910
});

0 commit comments

Comments
 (0)