Skip to content

Commit a478686

Browse files
committed
Setup tests
1 parent c8cc67c commit a478686

File tree

3 files changed

+54
-3
lines changed

3 files changed

+54
-3
lines changed

.travis.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,8 @@ os:
88
- linux
99

1010
node_js:
11+
- '8'
1112
- '6'
12-
- '5'
13-
- '4'
1413

1514
before_install:
1615
- npm install -g npm

setupTests.js

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import Enzyme from 'enzyme';
2+
import Adapter from 'enzyme-adapter-react-16';
3+
import { JSDOM } from 'jsdom';
4+
5+
// React 16 Enzyme adapter
6+
Enzyme.configure({ adapter: new Adapter() });
7+
8+
// Ignore `.styl` files
9+
require.extensions['.styl'] = () => {
10+
return;
11+
};
12+
13+
// JSDOM
14+
const jsdom = new JSDOM('<!doctype html><html><body></body></html>');
15+
const { window } = jsdom;
16+
17+
const copyProps = (src, target) => {
18+
const props = Object.getOwnPropertyNames(src)
19+
.filter(prop => typeof target[prop] === 'undefined')
20+
.reduce((result, prop) => ({
21+
...result,
22+
[prop]: Object.getOwnPropertyDescriptor(src, prop)
23+
}), {});
24+
Object.defineProperties(target, props);
25+
};
26+
27+
global.window = window;
28+
global.document = window.document;
29+
global.navigator = {
30+
userAgent: 'node.js'
31+
};
32+
33+
copyProps(window, global);

test/index.js

+20-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,24 @@
1+
import React from 'react';
2+
import { mount } from 'enzyme';
13
import { test } from 'tap';
4+
import '../setupTests';
5+
import Dropdown, { MenuItem } from '../src';
26

3-
test('noop', (t) => {
7+
test('<Dropdown />', (t) => {
8+
const wrapper = mount((
9+
<Dropdown>
10+
<Dropdown.Toggle>
11+
</Dropdown.Toggle>
12+
<Dropdown.Menu>
13+
<MenuItem></MenuItem>
14+
<MenuItem></MenuItem>
15+
<MenuItem></MenuItem>
16+
</Dropdown.Menu>
17+
</Dropdown>
18+
));
19+
t.equal(wrapper.find(Dropdown).length, 1, 'should render <Dropdown /> component');
20+
t.equal(wrapper.find(Dropdown.Toggle).length, 1, 'should render <Dropdown.Toggle /> component');
21+
t.equal(wrapper.find(Dropdown.Menu).length, 1, 'should render <Dropdown.Menu /> component');
22+
t.equal(wrapper.find(MenuItem).length, 3, 'should render <MenuItem /> component');
423
t.end();
524
});

0 commit comments

Comments
 (0)