Skip to content

Commit a7a7bc3

Browse files
authored
Merge pull request #3 from coreui/dev-tests
test: add more coverage
2 parents 4c7cf8c + 744d6f9 commit a7a7bc3

7 files changed

+80
-24
lines changed

package.json

+9-6
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,12 @@
3232
"react": "16.x"
3333
},
3434
"devDependencies": {
35+
"enzyme": "^3.3.0",
36+
"enzyme-adapter-react-16": "^1.1.1",
3537
"nwb": "0.21.x",
3638
"react": "^16.2.0",
37-
"react-dom": "^16.2.0"
39+
"react-dom": "^16.2.0",
40+
"sinon": "^4.4.9"
3841
},
3942
"author": "Łukasz Holeczek",
4043
"homepage": "http://coreui.io",
@@ -47,10 +50,10 @@
4750
"url": "https://github.com/coreui/coreui-react/issues"
4851
},
4952
"keywords": [
50-
"coreui",
51-
"react",
52-
"bootstrap",
53-
"framework",
54-
"responsive"
53+
"coreui",
54+
"react",
55+
"bootstrap",
56+
"framework",
57+
"responsive"
5558
]
5659
}

tests/Aside.test.js

+15-3
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,23 @@ import expect from 'expect'
22
import React from 'react'
33
import {renderToStaticMarkup as render} from 'react-dom/server'
44

5+
import { configure, mount } from 'enzyme'
6+
import Adapter from 'enzyme-adapter-react-16'
7+
import { spy } from 'sinon'
8+
59
import AppAside from 'src/Aside'
610

11+
configure({ adapter: new Adapter() });
12+
713
describe('AppAside', () => {
814
it('renders aside with class="aside-menu"', () => {
9-
expect(render(<AppAside />))
10-
.toContain('<aside class="aside-menu"></aside>')
11-
})
15+
expect(render(<AppAside fixed hidden display="lg">aside</AppAside>))
16+
.toContain('<aside class="aside-menu">aside</aside>')
17+
});
18+
it('calls componentDidMount', () => {
19+
spy(AppAside.prototype, 'componentDidMount');
20+
21+
const wrapper = mount(<AppAside fixed hidden display="lg" />);
22+
expect(AppAside.prototype.componentDidMount.calledOnce).toEqual(true);
23+
});
1224
})

tests/Footer.test.js

+13-1
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,23 @@ import expect from 'expect'
22
import React from 'react'
33
import {renderToStaticMarkup as render} from 'react-dom/server'
44

5+
import { configure, mount } from 'enzyme'
6+
import Adapter from 'enzyme-adapter-react-16'
7+
import { spy } from 'sinon'
8+
59
import AppFooter from 'src/Footer'
610

11+
configure({ adapter: new Adapter() });
12+
713
describe('AppFooter', () => {
814
it('renders footer with class="app-footer"', () => {
915
expect(render(<AppFooter />))
1016
.toContain('<footer class="app-footer"></footer>')
11-
})
17+
});
18+
it('calls componentDidMount', () => {
19+
spy(AppFooter.prototype, 'componentDidMount');
20+
21+
const wrapper = mount(<AppFooter fixed display="lg" />);
22+
expect(AppFooter.prototype.componentDidMount.calledOnce).toEqual(true);
23+
});
1224
})

tests/Header.test.js

+14-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,23 @@ import expect from 'expect'
22
import React from 'react'
33
import {renderToStaticMarkup as render} from 'react-dom/server'
44

5+
import { configure, mount } from 'enzyme'
6+
import Adapter from 'enzyme-adapter-react-16'
7+
import { spy } from 'sinon'
8+
59
import AppHeader from 'src/Header'
610

11+
configure({ adapter: new Adapter() });
12+
713
describe('AppHeader', () => {
814
it('renders header with class="app-header"', () => {
9-
expect(render(<AppHeader />))
15+
expect(render(<AppHeader fixed />))
1016
.toContain('<header class="app-header navbar"></header>')
11-
})
17+
});
18+
it('calls componentDidMount', () => {
19+
spy(AppHeader.prototype, 'componentDidMount');
20+
21+
const wrapper = mount(<AppHeader fixed/>);
22+
expect(AppHeader.prototype.componentDidMount.calledOnce).toEqual(true);
23+
});
1224
})

tests/NavbarBrand.test.js

+13-8
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
1-
import expect from 'expect'
2-
import React from 'react'
3-
import {renderToStaticMarkup as render} from 'react-dom/server'
1+
import expect from 'expect';
2+
import React from 'react';
3+
import { renderToStaticMarkup as render } from 'react-dom/server';
44

5-
import AppNavbarBrand from 'src/NavbarBrand'
5+
import logo from '../demo/src/assets/img/brand/logo.svg'
6+
import sygnet from '../demo/src/assets/img/brand/sygnet.svg'
7+
8+
import AppNavbarBrand from 'src/NavbarBrand';
69

710
describe('AppNavbarBrand', () => {
811
it('renders anchor with class="navbar-brand"', () => {
9-
expect(render(<AppNavbarBrand />))
10-
.toContain('<a class="navbar-brand"></a>')
11-
})
12-
})
12+
expect(render(<AppNavbarBrand
13+
full={{ src: logo, width: 89, height: 25, alt: 'CoreUI Logo' }}
14+
minimized={{ src: sygnet, width: 30, height: 30, alt: 'CoreUI Logo' }}
15+
/>)).toContain('class="navbar-brand"');
16+
});
17+
});

tests/Sidebar.test.js

+14-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,23 @@ import expect from 'expect'
22
import React from 'react'
33
import {renderToStaticMarkup as render} from 'react-dom/server'
44

5+
import { configure, mount } from 'enzyme'
6+
import Adapter from 'enzyme-adapter-react-16'
7+
import { spy } from 'sinon'
8+
59
import AppSidebar from 'src/Sidebar'
610

11+
configure({ adapter: new Adapter() });
12+
713
describe('AppSidebar', () => {
814
it('renders sidebar with class="sidebar"', () => {
9-
expect(render(<AppSidebar />))
15+
expect(render(<AppSidebar fixed display="lg" />))
1016
.toContain('<div class="sidebar"></div>')
11-
})
17+
});
18+
it('calls componentDidMount', () => {
19+
spy(AppSidebar.prototype, 'componentDidMount');
20+
21+
const wrapper = mount(<AppSidebar fixed display="lg" />);
22+
expect(AppSidebar.prototype.componentDidMount.calledOnce).toEqual(true);
23+
});
1224
})

tests/SidebarToggler.test.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import AppSidebarToggler from 'src/SidebarToggler';
66

77
describe('AppSidebarToggler', () => {
88
it('renders button with class="navbar-toggler"', () => {
9-
expect(render(<AppSidebarToggler />))
10-
.toContain('<button type="button" class="navbar-toggler"><span class="navbar-toggler-icon"></span></button>')
9+
expect(render(<AppSidebarToggler className="d-lg-none" display="md" mobile />))
10+
.toContain('<button type="button" class="d-lg-none navbar-toggler"><span class="navbar-toggler-icon"></span></button>')
1111
})
1212
})

0 commit comments

Comments
 (0)