-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFadeSpec.js
71 lines (54 loc) · 1.73 KB
/
FadeSpec.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
import React from 'react';
import ReactDOM from 'react-dom';
import ReactTestUtils from 'react-dom/test-utils';
import Fade from '../src/Fade';
describe('Fade', () => {
let Component, instance;
beforeEach(() => {
Component = class extends React.Component {
render() {
let { children, ...props } = this.props;
return (
<Fade ref={r => (this.fade = r)} {...props} {...this.state}>
<div>{children}</div>
</Fade>
);
}
};
});
it('Should default to hidden', () => {
instance = ReactTestUtils.renderIntoDocument(
<Component>Panel content</Component>
);
assert.ok(instance.fade.props.in === false);
});
it('Should always have the "fade" class', () => {
instance = ReactTestUtils.renderIntoDocument(
<Component>Panel content</Component>
);
assert.ok(instance.fade.props.in === false);
assert.equal(ReactDOM.findDOMNode(instance).className, 'fade');
});
it('Should add "in" class when entering', done => {
instance = ReactTestUtils.renderIntoDocument(
<Component>Panel content</Component>
);
function onEntering() {
assert.equal(ReactDOM.findDOMNode(instance).className, 'fade in');
done();
}
assert.ok(instance.fade.props.in === false);
instance.setState({ in: true, onEntering });
});
it('Should remove "in" class when exiting', done => {
instance = ReactTestUtils.renderIntoDocument(
<Component in>Panel content</Component>
);
function onExiting() {
assert.equal(ReactDOM.findDOMNode(instance).className, 'fade');
done();
}
assert.equal(ReactDOM.findDOMNode(instance).className, 'fade in');
instance.setState({ in: false, onExiting });
});
});