forked from atom/github
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreaction-picker-controller.test.js
66 lines (48 loc) · 1.98 KB
/
reaction-picker-controller.test.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
import React from 'react';
import {shallow} from 'enzyme';
import ReactionPickerController from '../../lib/controllers/reaction-picker-controller';
import ReactionPickerView from '../../lib/views/reaction-picker-view';
import RefHolder from '../../lib/models/ref-holder';
describe('ReactionPickerController', function() {
let atomEnv;
beforeEach(function() {
atomEnv = global.buildAtomEnvironment();
});
afterEach(function() {
atomEnv.destroy();
});
function buildApp(override = {}) {
const props = {
addReaction: () => Promise.resolve(),
removeReaction: () => Promise.resolve(),
tooltipHolder: new RefHolder(),
...override,
};
return <ReactionPickerController {...props} />;
}
it('renders a ReactionPickerView and passes props', function() {
const extra = Symbol('extra');
const wrapper = shallow(buildApp({extra}));
assert.strictEqual(wrapper.find(ReactionPickerView).prop('extra'), extra);
});
it('adds a reaction, then closes the tooltip', async function() {
const addReaction = sinon.stub().resolves();
const mockTooltip = {dispose: sinon.spy()};
const tooltipHolder = new RefHolder();
tooltipHolder.setter(mockTooltip);
const wrapper = shallow(buildApp({addReaction, tooltipHolder}));
await wrapper.find(ReactionPickerView).prop('addReactionAndClose')('THUMBS_UP');
assert.isTrue(addReaction.calledWith('THUMBS_UP'));
assert.isTrue(mockTooltip.dispose.called);
});
it('removes a reaction, then closes the tooltip', async function() {
const removeReaction = sinon.stub().resolves();
const mockTooltip = {dispose: sinon.spy()};
const tooltipHolder = new RefHolder();
tooltipHolder.setter(mockTooltip);
const wrapper = shallow(buildApp({removeReaction, tooltipHolder}));
await wrapper.find(ReactionPickerView).prop('removeReactionAndClose')('THUMBS_DOWN');
assert.isTrue(removeReaction.calledWith('THUMBS_DOWN'));
assert.isTrue(mockTooltip.dispose.called);
});
});