Skip to content

Commit 310fa60

Browse files
committed
test: add coverage
1 parent 52a6886 commit 310fa60

File tree

11 files changed

+155
-28
lines changed

11 files changed

+155
-28
lines changed

src/App.test.js

+7-18
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,9 @@
1-
// import React from 'react';
2-
// import ReactDOM from 'react-dom';
3-
// import App from './App';
4-
//
5-
// jest.mock('react-chartjs-2', () => ({
6-
// Line: () => null,
7-
// Polar: () => null,
8-
// Pie: () => null,
9-
// Radar: () => null,
10-
// Bar: () => null,
11-
// Doughnut: () => null,
12-
// }));
1+
import React from 'react';
2+
import {shallow} from 'enzyme/build';
3+
import App from './App';
134

14-
// it('renders without crashing', () => {
15-
// const div = document.createElement('div');
16-
// ReactDOM.render(<App />, div);
17-
// ReactDOM.unmountComponentAtNode(div);
18-
// });
195

20-
it('', () => {})
6+
it('mounts without crashing', () => {
7+
const wrapper = shallow(<App />);
8+
wrapper.unmount()
9+
});

src/views/Base/Collapses/Collapses.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ class Collapses extends Component {
103103
</CardBody>
104104
</Collapse>
105105
<CardFooter>
106-
<Button color="primary" onClick={this.toggle} style={{ marginBottom: '1rem' }}>Toggle</Button>
106+
<Button color="primary" onClick={this.toggle} className={'mb-1'} id="toggleCollapse1">Toggle</Button>
107+
<hr/>
107108
<h5>Current state: {this.state.status}</h5>
108109
</CardFooter>
109110
</Card>
@@ -122,7 +123,7 @@ class Collapses extends Component {
122123
</Fade>
123124
</CardBody>
124125
<CardFooter>
125-
<Button color="primary" onClick={this.toggleFade}>Toggle Fade</Button>
126+
<Button color="primary" onClick={this.toggleFade} id="toggleFade1">Toggle Fade</Button>
126127
</CardFooter>
127128
</Card>
128129
</Col>
+64
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,73 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
33
import Collapses from './Collapses';
4+
import {mount} from 'enzyme/build';
45

56
it('renders without crashing', () => {
67
const div = document.createElement('div');
78
ReactDOM.render(<Collapses />, div);
89
ReactDOM.unmountComponentAtNode(div);
910
});
11+
12+
describe('toggle clicks', function() {
13+
it('collapse without crashing', () => {
14+
const wrapper = mount(<Collapses />);
15+
let collapse = wrapper.find('#toggleCollapse1').at(0);
16+
collapse.simulate('click');
17+
expect(wrapper.state().collapse).toEqual(true);
18+
collapse.simulate('click');
19+
expect(wrapper.state().collapse).toEqual(false);
20+
collapse.simulate('click');
21+
expect(wrapper.state().collapse).toEqual(true);
22+
wrapper.unmount()
23+
});
24+
it('fade without crashing', () => {
25+
const wrapper = mount(<Collapses />);
26+
let fade = wrapper.find('#toggleFade1').at(0);
27+
fade.simulate('click');
28+
expect(wrapper.state().fadeIn).toEqual(false);
29+
fade.simulate('click');
30+
expect(wrapper.state().fadeIn).toEqual(true);
31+
wrapper.unmount()
32+
});
33+
it('accordion without crashing', () => {
34+
const wrapper = mount(<Collapses />);
35+
let accordion = wrapper.find('[aria-controls="collapseOne"]').at(0);
36+
accordion.simulate('click');
37+
expect(wrapper.state().accordion[0]).toEqual(false);
38+
expect(wrapper.state().accordion[1]).toEqual(false);
39+
expect(wrapper.state().accordion[2]).toEqual(false);
40+
accordion = wrapper.find('[aria-controls="collapseTwo"]').at(0);
41+
accordion.simulate('click');
42+
expect(wrapper.state().accordion[0]).toEqual(false);
43+
expect(wrapper.state().accordion[1]).toEqual(true);
44+
expect(wrapper.state().accordion[2]).toEqual(false);
45+
accordion = wrapper.find('[aria-controls="collapseThree"]').at(0);
46+
accordion.simulate('click');
47+
expect(wrapper.state().accordion[0]).toEqual(false);
48+
expect(wrapper.state().accordion[1]).toEqual(false);
49+
expect(wrapper.state().accordion[2]).toEqual(true);
50+
accordion = wrapper.find('[aria-controls="collapseOne"]').at(0);
51+
accordion.simulate('click');
52+
expect(wrapper.state().accordion[0]).toEqual(true);
53+
expect(wrapper.state().accordion[1]).toEqual(false);
54+
expect(wrapper.state().accordion[2]).toEqual(false);
55+
wrapper.unmount()
56+
});
57+
it('custom without crashing', () => {
58+
const wrapper = mount(<Collapses />);
59+
let accordion = wrapper.find('[aria-controls="exampleAccordion1"]').at(0);
60+
accordion.simulate('click');
61+
expect(wrapper.state().custom[0]).toEqual(false);
62+
expect(wrapper.state().custom[1]).toEqual(false);
63+
accordion = wrapper.find('[aria-controls="exampleAccordion1"]').at(0);
64+
accordion.simulate('click');
65+
expect(wrapper.state().custom[0]).toEqual(true);
66+
expect(wrapper.state().custom[1]).toEqual(false);
67+
accordion = wrapper.find('[aria-controls="exampleAccordion2"]').at(0);
68+
accordion.simulate('click');
69+
expect(wrapper.state().custom[0]).toEqual(false);
70+
expect(wrapper.state().custom[1]).toEqual(true);
71+
wrapper.unmount()
72+
});
73+
});

src/views/Base/Dropdowns/Dropdowns.test.js

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ it('renders without crashing', () => {
77
const div = document.createElement('div');
88
ReactDOM.render(<Dropdowns />, div);
99
ReactDOM.unmountComponentAtNode(div);
10+
});
11+
it('toggle click without crashing', () => {
1012
const wrapper = mount(<Dropdowns />);
1113
for (let i=0; i<5; i++) {
1214
let Dropdown = wrapper.find('button.dropdown-toggle').at(i);

src/views/Base/Forms/Forms.test.js

+30
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,39 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
33
import Forms from './Forms';
4+
import {mount} from 'enzyme/build';
45

56
it('renders without crashing', () => {
67
const div = document.createElement('div');
78
ReactDOM.render(<Forms />, div);
89
ReactDOM.unmountComponentAtNode(div);
910
});
11+
12+
describe('toggle clicks', function() {
13+
it('dropdowns without crashing', () => {
14+
const wrapper = mount(<Forms />);
15+
for (let i = 0; i < 4; i++) {
16+
let count = i === 0 ? 'first' : i === 1 ? 'second' : i === 2 ? 'third' : 'fourth'
17+
let Dropdown = wrapper.find('button.dropdown-toggle').at(i);
18+
Dropdown.simulate('click');
19+
expect(wrapper.state()[count]).toEqual(true);
20+
}
21+
wrapper.unmount()
22+
});
23+
it('collapse without crashing', () => {
24+
const wrapper = mount(<Forms />);
25+
let collapse = wrapper.find('button.btn-minimize').at(0);
26+
collapse.simulate('click');
27+
expect(wrapper.state().collapse).toEqual(false);
28+
collapse.simulate('click');
29+
expect(wrapper.state().collapse).toEqual(true);
30+
wrapper.unmount()
31+
});
32+
it('fade without crashing', () => {
33+
const wrapper = mount(<Forms />);
34+
let fade = wrapper.find('button.btn-close').at(0);
35+
fade.simulate('click');
36+
expect(wrapper.state().fadeIn).toEqual(false);
37+
wrapper.unmount()
38+
});
39+
})
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
33
import ListGroups from './ListGroups';
4+
import {mount} from 'enzyme/build';
45

56
it('renders without crashing', () => {
67
const div = document.createElement('div');
78
ReactDOM.render(<ListGroups />, div);
89
ReactDOM.unmountComponentAtNode(div);
910
});
11+
it('toggle click without crashing', () => {
12+
const wrapper = mount(<ListGroups />);
13+
for (let i=0; i<4; i++) {
14+
let ListGroup = wrapper.find('#list-tab .list-group-item-action.list-group-item').at(i);
15+
ListGroup.simulate('click');
16+
expect(wrapper.state().activeTab).toEqual(i);
17+
}
18+
wrapper.unmount()
19+
});

src/views/Base/Navs/Navs.test.js

+10
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
33
import Navs from './Navs';
4+
import {mount} from 'enzyme/build';
45

56
it('renders without crashing', () => {
67
const div = document.createElement('div');
78
ReactDOM.render(<Navs />, div);
89
ReactDOM.unmountComponentAtNode(div);
910
});
11+
it('toggle click without crashing', () => {
12+
const wrapper = mount(<Navs />);
13+
for (let i=0; i<2; i++) {
14+
let Nav = wrapper.find('a.dropdown-toggle').at(i);
15+
Nav.simulate('click');
16+
expect(wrapper.state().dropdownOpen[i]).toEqual(true);
17+
}
18+
wrapper.unmount()
19+
});

src/views/Buttons/ButtonDropdowns/ButtonDropdowns.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ class ButtonDropdowns extends Component {
205205
<i className="fa fa-align-justify"></i><strong>Dropdown directions</strong>
206206
</CardHeader>
207207
<CardBody>
208-
<ButtonDropdown direction="up" className="mr-1" isOpen={this.state.dropdownOpen[15]} toggle={() => { this.toggle(15); }}>
208+
<ButtonDropdown direction="up" className="mr-1" isOpen={this.state.dropdownOpen[13]} toggle={() => { this.toggle(13); }}>
209209
<DropdownToggle caret size="lg">
210210
Direction Up
211211
</DropdownToggle>
@@ -216,7 +216,7 @@ class ButtonDropdowns extends Component {
216216
<DropdownItem>Another Action</DropdownItem>
217217
</DropdownMenu>
218218
</ButtonDropdown>
219-
<ButtonDropdown direction="left" className="mr-1" isOpen={this.state.dropdownOpen[16]} toggle={() => { this.toggle(16); }}>
219+
<ButtonDropdown direction="left" className="mr-1" isOpen={this.state.dropdownOpen[14]} toggle={() => { this.toggle(14); }}>
220220
<DropdownToggle caret size="lg">
221221
Direction Left
222222
</DropdownToggle>
@@ -227,7 +227,7 @@ class ButtonDropdowns extends Component {
227227
<DropdownItem>Another Action</DropdownItem>
228228
</DropdownMenu>
229229
</ButtonDropdown>
230-
<ButtonDropdown direction="right" className="mr-1" isOpen={this.state.dropdownOpen[17]} toggle={() => { this.toggle(17); }}>
230+
<ButtonDropdown direction="right" className="mr-1" isOpen={this.state.dropdownOpen[15]} toggle={() => { this.toggle(15); }}>
231231
<DropdownToggle caret size="lg">
232232
Direction Right
233233
</DropdownToggle>
@@ -238,7 +238,7 @@ class ButtonDropdowns extends Component {
238238
<DropdownItem>Another Action</DropdownItem>
239239
</DropdownMenu>
240240
</ButtonDropdown>
241-
<ButtonDropdown className="mr-1" isOpen={this.state.dropdownOpen[18]} toggle={() => { this.toggle(18); }}>
241+
<ButtonDropdown className="mr-1" isOpen={this.state.dropdownOpen[16]} toggle={() => { this.toggle(16); }}>
242242
<DropdownToggle caret size="lg">
243243
Default Down
244244
</DropdownToggle>
@@ -256,7 +256,7 @@ class ButtonDropdowns extends Component {
256256
<i className="fa fa-align-justify"></i><strong>Button Dropdown sizing</strong>
257257
</CardHeader>
258258
<CardBody>
259-
<ButtonDropdown className="mr-1" isOpen={this.state.dropdownOpen[13]} toggle={() => { this.toggle(13); }}>
259+
<ButtonDropdown className="mr-1" isOpen={this.state.dropdownOpen[17]} toggle={() => { this.toggle(17); }}>
260260
<DropdownToggle caret size="lg">
261261
Large Button
262262
</DropdownToggle>
@@ -267,7 +267,7 @@ class ButtonDropdowns extends Component {
267267
<DropdownItem>Another Action</DropdownItem>
268268
</DropdownMenu>
269269
</ButtonDropdown>
270-
<ButtonDropdown isOpen={this.state.dropdownOpen[14]} toggle={() => { this.toggle(14); }}>
270+
<ButtonDropdown isOpen={this.state.dropdownOpen[18]} toggle={() => { this.toggle(18); }}>
271271
<DropdownToggle caret size="sm">
272272
Small Button
273273
</DropdownToggle>
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
3+
import { mount } from 'enzyme'
34
import ButtonDropdowns from './ButtonDropdowns';
45

56
it('renders without crashing', () => {
67
const div = document.createElement('div');
78
ReactDOM.render(<ButtonDropdowns />, div);
89
ReactDOM.unmountComponentAtNode(div);
910
});
11+
it('toggle click without crashing', () => {
12+
const wrapper = mount(<ButtonDropdowns />);
13+
for (let i=0; i<19; i++) {
14+
let ButtonDropdown = wrapper.find('button.dropdown-toggle').at(i);
15+
ButtonDropdown.simulate('click');
16+
expect(wrapper.state().dropdownOpen[i]).toEqual(true);
17+
}
18+
wrapper.unmount()
19+
});
20+

src/views/Buttons/ButtonGroups/ButtonGroups.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class ButtonGroups extends Component {
6666
<ButtonGroup vertical>
6767
<Button>1</Button>
6868
<Button>2</Button>
69-
<ButtonDropdown isOpen={this.state.dropdownOpen[1]} toggle={() => { this.toggle(1); }}>
69+
<ButtonDropdown isOpen={this.state.dropdownOpen[1]} toggle={() => { this.toggle(0); }}>
7070
<DropdownToggle caret>
7171
Dropdown
7272
</DropdownToggle>
@@ -135,7 +135,7 @@ class ButtonGroups extends Component {
135135
<ButtonGroup>
136136
<Button>1</Button>
137137
<Button>2</Button>
138-
<ButtonDropdown isOpen={this.state.dropdownOpen[0]} toggle={() => { this.toggle(0); }}>
138+
<ButtonDropdown isOpen={this.state.dropdownOpen[0]} toggle={() => { this.toggle(1); }}>
139139
<DropdownToggle caret>
140140
Dropdown
141141
</DropdownToggle>
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,19 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
33
import ButtonGroups from './ButtonGroups';
4+
import {mount} from 'enzyme/build';
45

56
it('renders without crashing', () => {
67
const div = document.createElement('div');
78
ReactDOM.render(<ButtonGroups />, div);
89
ReactDOM.unmountComponentAtNode(div);
910
});
11+
it('toggle click without crashing', () => {
12+
const wrapper = mount(<ButtonGroups />);
13+
for (let i=0; i<2; i++) {
14+
let ButtonGroup = wrapper.find('button.dropdown-toggle').at(i);
15+
ButtonGroup.simulate('click');
16+
expect(wrapper.state().dropdownOpen[i]).toEqual(true);
17+
}
18+
wrapper.unmount()
19+
});

0 commit comments

Comments
 (0)