/
Navbar.spec.js
83 lines (60 loc) · 3.15 KB
/
Navbar.spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import React from 'react';
import { shallow } from 'enzyme';
import { Navbar } from '../';
describe('Navbar', () => {
it('should render .navbar markup', () => {
const wrapper = shallow(<Navbar />);
expect(wrapper.html()).toBe('<nav class="navbar"><div class="container-fluid"></div></nav>');
});
it('should render default .navbar-expand class', () => {
const wrapper = shallow(<Navbar expand />);
expect(wrapper.html()).toBe('<nav class="navbar navbar-expand"><div class="container-fluid"></div></nav>');
});
it('should render size based .navbar-expand-* classes', () => {
const wrapper = shallow(<Navbar expand="md" />);
expect(wrapper.html()).toBe('<nav class="navbar navbar-expand-md"><div class="container-fluid"></div></nav>');
});
it('should render custom tag', () => {
const wrapper = shallow(<Navbar tag="div" />);
expect(wrapper.html()).toBe('<div class="navbar"><div class="container-fluid"></div></div>');
});
it('should render role', () => {
const wrapper = shallow(<Navbar role="navigation" />);
expect(wrapper.html()).toBe('<nav role="navigation" class="navbar"><div class="container-fluid"></div></nav>');
});
it('should support container options', () => {
let wrapper = shallow(<Navbar container={false} />);
expect(wrapper.html()).toBe('<nav class="navbar"></nav>');
wrapper = shallow(<Navbar container />);
expect(wrapper.html()).toBe('<nav class="navbar"><div class="container"></div></nav>');
wrapper = shallow(<Navbar container="xs" />);
expect(wrapper.html()).toBe('<nav class="navbar"><div class="container-xs"></div></nav>');
wrapper = shallow(<Navbar container="sm" />);
expect(wrapper.html()).toBe('<nav class="navbar"><div class="container-sm"></div></nav>');
wrapper = shallow(<Navbar container="md" />);
expect(wrapper.html()).toBe('<nav class="navbar"><div class="container-md"></div></nav>');
wrapper = shallow(<Navbar container="lg" />);
expect(wrapper.html()).toBe('<nav class="navbar"><div class="container-lg"></div></nav>');
wrapper = shallow(<Navbar container="xl" />);
expect(wrapper.html()).toBe('<nav class="navbar"><div class="container-xl"></div></nav>');
});
it('should render children', () => {
const wrapper = shallow(<Navbar>Children</Navbar>);
expect(wrapper.html()).toBe('<nav class="navbar"><div class="container-fluid">Children</div></nav>');
});
it('should pass additional classNames', () => {
const wrapper = shallow(<Navbar className="extra" />);
expect(wrapper.hasClass('extra')).toBe(true);
expect(wrapper.hasClass('navbar')).toBe(true);
});
it('should render prop based classes', () => {
const wrapper = shallow(<Navbar light dark expand="sm" color="success" full sticky="top" fixed="top" />);
expect(wrapper.hasClass('bg-success')).toBe(true);
expect(wrapper.hasClass('navbar')).toBe(true);
expect(wrapper.hasClass('navbar-expand-sm')).toBe(true);
expect(wrapper.hasClass('navbar-light')).toBe(true);
expect(wrapper.hasClass('navbar-dark')).toBe(true);
expect(wrapper.hasClass('fixed-top')).toBe(true);
expect(wrapper.hasClass('sticky-top')).toBe(true);
});
});