test: add coverage

This commit is contained in:
xidedix 2018-11-26 19:54:54 +01:00
parent 52a68868cd
commit 310fa608b1
11 changed files with 155 additions and 28 deletions

View File

@ -1,20 +1,9 @@
// import React from 'react';
// import ReactDOM from 'react-dom';
// import App from './App';
//
// jest.mock('react-chartjs-2', () => ({
// Line: () => null,
// Polar: () => null,
// Pie: () => null,
// Radar: () => null,
// Bar: () => null,
// Doughnut: () => null,
// }));
import React from 'react';
import {shallow} from 'enzyme/build';
import App from './App';
// it('renders without crashing', () => {
// const div = document.createElement('div');
// ReactDOM.render(<App />, div);
// ReactDOM.unmountComponentAtNode(div);
// });
it('', () => {})
it('mounts without crashing', () => {
const wrapper = shallow(<App />);
wrapper.unmount()
});

View File

@ -103,7 +103,8 @@ class Collapses extends Component {
</CardBody>
</Collapse>
<CardFooter>
<Button color="primary" onClick={this.toggle} style={{ marginBottom: '1rem' }}>Toggle</Button>
<Button color="primary" onClick={this.toggle} className={'mb-1'} id="toggleCollapse1">Toggle</Button>
<hr/>
<h5>Current state: {this.state.status}</h5>
</CardFooter>
</Card>
@ -122,7 +123,7 @@ class Collapses extends Component {
</Fade>
</CardBody>
<CardFooter>
<Button color="primary" onClick={this.toggleFade}>Toggle Fade</Button>
<Button color="primary" onClick={this.toggleFade} id="toggleFade1">Toggle Fade</Button>
</CardFooter>
</Card>
</Col>

View File

@ -1,9 +1,73 @@
import React from 'react';
import ReactDOM from 'react-dom';
import Collapses from './Collapses';
import {mount} from 'enzyme/build';
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<Collapses />, div);
ReactDOM.unmountComponentAtNode(div);
});
describe('toggle clicks', function() {
it('collapse without crashing', () => {
const wrapper = mount(<Collapses />);
let collapse = wrapper.find('#toggleCollapse1').at(0);
collapse.simulate('click');
expect(wrapper.state().collapse).toEqual(true);
collapse.simulate('click');
expect(wrapper.state().collapse).toEqual(false);
collapse.simulate('click');
expect(wrapper.state().collapse).toEqual(true);
wrapper.unmount()
});
it('fade without crashing', () => {
const wrapper = mount(<Collapses />);
let fade = wrapper.find('#toggleFade1').at(0);
fade.simulate('click');
expect(wrapper.state().fadeIn).toEqual(false);
fade.simulate('click');
expect(wrapper.state().fadeIn).toEqual(true);
wrapper.unmount()
});
it('accordion without crashing', () => {
const wrapper = mount(<Collapses />);
let accordion = wrapper.find('[aria-controls="collapseOne"]').at(0);
accordion.simulate('click');
expect(wrapper.state().accordion[0]).toEqual(false);
expect(wrapper.state().accordion[1]).toEqual(false);
expect(wrapper.state().accordion[2]).toEqual(false);
accordion = wrapper.find('[aria-controls="collapseTwo"]').at(0);
accordion.simulate('click');
expect(wrapper.state().accordion[0]).toEqual(false);
expect(wrapper.state().accordion[1]).toEqual(true);
expect(wrapper.state().accordion[2]).toEqual(false);
accordion = wrapper.find('[aria-controls="collapseThree"]').at(0);
accordion.simulate('click');
expect(wrapper.state().accordion[0]).toEqual(false);
expect(wrapper.state().accordion[1]).toEqual(false);
expect(wrapper.state().accordion[2]).toEqual(true);
accordion = wrapper.find('[aria-controls="collapseOne"]').at(0);
accordion.simulate('click');
expect(wrapper.state().accordion[0]).toEqual(true);
expect(wrapper.state().accordion[1]).toEqual(false);
expect(wrapper.state().accordion[2]).toEqual(false);
wrapper.unmount()
});
it('custom without crashing', () => {
const wrapper = mount(<Collapses />);
let accordion = wrapper.find('[aria-controls="exampleAccordion1"]').at(0);
accordion.simulate('click');
expect(wrapper.state().custom[0]).toEqual(false);
expect(wrapper.state().custom[1]).toEqual(false);
accordion = wrapper.find('[aria-controls="exampleAccordion1"]').at(0);
accordion.simulate('click');
expect(wrapper.state().custom[0]).toEqual(true);
expect(wrapper.state().custom[1]).toEqual(false);
accordion = wrapper.find('[aria-controls="exampleAccordion2"]').at(0);
accordion.simulate('click');
expect(wrapper.state().custom[0]).toEqual(false);
expect(wrapper.state().custom[1]).toEqual(true);
wrapper.unmount()
});
});

View File

@ -7,6 +7,8 @@ it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<Dropdowns />, div);
ReactDOM.unmountComponentAtNode(div);
});
it('toggle click without crashing', () => {
const wrapper = mount(<Dropdowns />);
for (let i=0; i<5; i++) {
let Dropdown = wrapper.find('button.dropdown-toggle').at(i);

View File

@ -1,9 +1,39 @@
import React from 'react';
import ReactDOM from 'react-dom';
import Forms from './Forms';
import {mount} from 'enzyme/build';
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<Forms />, div);
ReactDOM.unmountComponentAtNode(div);
});
describe('toggle clicks', function() {
it('dropdowns without crashing', () => {
const wrapper = mount(<Forms />);
for (let i = 0; i < 4; i++) {
let count = i === 0 ? 'first' : i === 1 ? 'second' : i === 2 ? 'third' : 'fourth'
let Dropdown = wrapper.find('button.dropdown-toggle').at(i);
Dropdown.simulate('click');
expect(wrapper.state()[count]).toEqual(true);
}
wrapper.unmount()
});
it('collapse without crashing', () => {
const wrapper = mount(<Forms />);
let collapse = wrapper.find('button.btn-minimize').at(0);
collapse.simulate('click');
expect(wrapper.state().collapse).toEqual(false);
collapse.simulate('click');
expect(wrapper.state().collapse).toEqual(true);
wrapper.unmount()
});
it('fade without crashing', () => {
const wrapper = mount(<Forms />);
let fade = wrapper.find('button.btn-close').at(0);
fade.simulate('click');
expect(wrapper.state().fadeIn).toEqual(false);
wrapper.unmount()
});
})

View File

@ -1,9 +1,19 @@
import React from 'react';
import ReactDOM from 'react-dom';
import ListGroups from './ListGroups';
import {mount} from 'enzyme/build';
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<ListGroups />, div);
ReactDOM.unmountComponentAtNode(div);
});
it('toggle click without crashing', () => {
const wrapper = mount(<ListGroups />);
for (let i=0; i<4; i++) {
let ListGroup = wrapper.find('#list-tab .list-group-item-action.list-group-item').at(i);
ListGroup.simulate('click');
expect(wrapper.state().activeTab).toEqual(i);
}
wrapper.unmount()
});

View File

@ -1,9 +1,19 @@
import React from 'react';
import ReactDOM from 'react-dom';
import Navs from './Navs';
import {mount} from 'enzyme/build';
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<Navs />, div);
ReactDOM.unmountComponentAtNode(div);
});
it('toggle click without crashing', () => {
const wrapper = mount(<Navs />);
for (let i=0; i<2; i++) {
let Nav = wrapper.find('a.dropdown-toggle').at(i);
Nav.simulate('click');
expect(wrapper.state().dropdownOpen[i]).toEqual(true);
}
wrapper.unmount()
});

View File

@ -205,7 +205,7 @@ class ButtonDropdowns extends Component {
<i className="fa fa-align-justify"></i><strong>Dropdown directions</strong>
</CardHeader>
<CardBody>
<ButtonDropdown direction="up" className="mr-1" isOpen={this.state.dropdownOpen[15]} toggle={() => { this.toggle(15); }}>
<ButtonDropdown direction="up" className="mr-1" isOpen={this.state.dropdownOpen[13]} toggle={() => { this.toggle(13); }}>
<DropdownToggle caret size="lg">
Direction Up
</DropdownToggle>
@ -216,7 +216,7 @@ class ButtonDropdowns extends Component {
<DropdownItem>Another Action</DropdownItem>
</DropdownMenu>
</ButtonDropdown>
<ButtonDropdown direction="left" className="mr-1" isOpen={this.state.dropdownOpen[16]} toggle={() => { this.toggle(16); }}>
<ButtonDropdown direction="left" className="mr-1" isOpen={this.state.dropdownOpen[14]} toggle={() => { this.toggle(14); }}>
<DropdownToggle caret size="lg">
Direction Left
</DropdownToggle>
@ -227,7 +227,7 @@ class ButtonDropdowns extends Component {
<DropdownItem>Another Action</DropdownItem>
</DropdownMenu>
</ButtonDropdown>
<ButtonDropdown direction="right" className="mr-1" isOpen={this.state.dropdownOpen[17]} toggle={() => { this.toggle(17); }}>
<ButtonDropdown direction="right" className="mr-1" isOpen={this.state.dropdownOpen[15]} toggle={() => { this.toggle(15); }}>
<DropdownToggle caret size="lg">
Direction Right
</DropdownToggle>
@ -238,7 +238,7 @@ class ButtonDropdowns extends Component {
<DropdownItem>Another Action</DropdownItem>
</DropdownMenu>
</ButtonDropdown>
<ButtonDropdown className="mr-1" isOpen={this.state.dropdownOpen[18]} toggle={() => { this.toggle(18); }}>
<ButtonDropdown className="mr-1" isOpen={this.state.dropdownOpen[16]} toggle={() => { this.toggle(16); }}>
<DropdownToggle caret size="lg">
Default Down
</DropdownToggle>
@ -256,7 +256,7 @@ class ButtonDropdowns extends Component {
<i className="fa fa-align-justify"></i><strong>Button Dropdown sizing</strong>
</CardHeader>
<CardBody>
<ButtonDropdown className="mr-1" isOpen={this.state.dropdownOpen[13]} toggle={() => { this.toggle(13); }}>
<ButtonDropdown className="mr-1" isOpen={this.state.dropdownOpen[17]} toggle={() => { this.toggle(17); }}>
<DropdownToggle caret size="lg">
Large Button
</DropdownToggle>
@ -267,7 +267,7 @@ class ButtonDropdowns extends Component {
<DropdownItem>Another Action</DropdownItem>
</DropdownMenu>
</ButtonDropdown>
<ButtonDropdown isOpen={this.state.dropdownOpen[14]} toggle={() => { this.toggle(14); }}>
<ButtonDropdown isOpen={this.state.dropdownOpen[18]} toggle={() => { this.toggle(18); }}>
<DropdownToggle caret size="sm">
Small Button
</DropdownToggle>

View File

@ -1,5 +1,6 @@
import React from 'react';
import ReactDOM from 'react-dom';
import { mount } from 'enzyme'
import ButtonDropdowns from './ButtonDropdowns';
it('renders without crashing', () => {
@ -7,3 +8,13 @@ it('renders without crashing', () => {
ReactDOM.render(<ButtonDropdowns />, div);
ReactDOM.unmountComponentAtNode(div);
});
it('toggle click without crashing', () => {
const wrapper = mount(<ButtonDropdowns />);
for (let i=0; i<19; i++) {
let ButtonDropdown = wrapper.find('button.dropdown-toggle').at(i);
ButtonDropdown.simulate('click');
expect(wrapper.state().dropdownOpen[i]).toEqual(true);
}
wrapper.unmount()
});

View File

@ -66,7 +66,7 @@ class ButtonGroups extends Component {
<ButtonGroup vertical>
<Button>1</Button>
<Button>2</Button>
<ButtonDropdown isOpen={this.state.dropdownOpen[1]} toggle={() => { this.toggle(1); }}>
<ButtonDropdown isOpen={this.state.dropdownOpen[1]} toggle={() => { this.toggle(0); }}>
<DropdownToggle caret>
Dropdown
</DropdownToggle>
@ -135,7 +135,7 @@ class ButtonGroups extends Component {
<ButtonGroup>
<Button>1</Button>
<Button>2</Button>
<ButtonDropdown isOpen={this.state.dropdownOpen[0]} toggle={() => { this.toggle(0); }}>
<ButtonDropdown isOpen={this.state.dropdownOpen[0]} toggle={() => { this.toggle(1); }}>
<DropdownToggle caret>
Dropdown
</DropdownToggle>

View File

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