forked from reactstrap/reactstrap
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathButtonDropdown.spec.js
More file actions
38 lines (31 loc) · 1.2 KB
/
Copy pathButtonDropdown.spec.js
File metadata and controls
38 lines (31 loc) · 1.2 KB
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
import React from 'react';
import { mount } from 'enzyme';
import { ButtonDropdown, DropdownToggle, DropdownMenu, DropdownItem } from '../';
describe('ButtonDropdown', () => {
let isOpen;
let toggle;
beforeEach(() => {
isOpen = false;
toggle = () => { isOpen = !isOpen; };
});
it('should render a single child', () => {
const wrapper = mount(<ButtonDropdown isOpen={isOpen} toggle={toggle}>Ello world</ButtonDropdown>);
expect(wrapper.find('.btn-group').hostNodes().text()).toBe('Ello world');
expect(wrapper.find('.btn-group').hostNodes().length).toBe(1);
});
it('should render multiple children when isOpen', () => {
isOpen = true;
const wrapper = mount(
<ButtonDropdown isOpen={isOpen} toggle={toggle}>
<DropdownToggle>Toggle</DropdownToggle>
<DropdownMenu>
<DropdownItem>Test</DropdownItem>
</DropdownMenu>
</ButtonDropdown>
);
expect(wrapper.find('.btn').hostNodes().text()).toBe('Toggle');
expect(wrapper.find('.btn-group').hostNodes().length).toBe(1);
expect(wrapper.find('.dropdown-item').hostNodes().length).toBe(1);
expect(wrapper.childAt(0).childAt(0).childAt(0).children().length).toBe(2);
});
});