-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.js
More file actions
61 lines (49 loc) · 1.44 KB
/
test.js
File metadata and controls
61 lines (49 loc) · 1.44 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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
const React = require('react');
const expect = require('expect');
const {spy} = require('sinon');
const reactUtils = require('./');
class TestComponent extends React.Component {
constructor (props) {
super(props);
this.state = {
message: 'Hi!'
};
this.onClick = this.onClick.bind(this);
}
render () {
const {message} = this.state;
return (
<button className="test-button" onClick={this.onClick}>{message}</button>
);
}
onClick () {
this.props.onMessageChange();
this.setState({
message: 'Bye!'
});
}
}
describe('Exports', function () {
const {render, simulateDOMEvent} = reactUtils();
it('expected objects', function () {
expect(render).toBeA('function');
expect(simulateDOMEvent).toBeA('function');
});
});
describe('An example test', function () {
const {render} = reactUtils();
it('creates a fake browser environment', function () {
expect(window).toNotBeAn('undefined');
expect(document).toNotBeAn('undefined');
expect(requestAnimationFrame).toBeA('function');
});
it('returns an enzyme wrapper', function () {
const onMessageChange = spy();
const wrapper = render(<TestComponent onMessageChange={onMessageChange} />);
const button = wrapper.find('.test-button');
expect(button.text()).toContain('Hi!');
button.simulate('click');
expect(button.text()).toContain('Bye!');
expect(onMessageChange.callCount).toEqual(1);
});
});