forked from mattermost/mattermost-webapp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
leave_team_modal.test.jsx
66 lines (52 loc) · 2.44 KB
/
leave_team_modal.test.jsx
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
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React from 'react';
import LeaveTeamModal from 'components/leave_team_modal/leave_team_modal.jsx';
import {shallowWithIntl} from 'tests/helpers/intl-test-helper';
describe('components/LeaveTeamModal', () => {
const requiredProps = {
currentUserId: 'user_id',
currentTeamId: 'team_id',
onHide: jest.fn(),
show: false,
isBusy: false,
actions: {
leaveTeam: jest.fn(),
toggleSideBarRightMenu: jest.fn(),
},
};
it('should render the leave team model', () => {
const wrapper = shallowWithIntl(<LeaveTeamModal {...requiredProps}/>).
dive({disableLifecycleMethods: true});
expect(wrapper).toMatchSnapshot();
});
it('should call onHide when cancel is clicked', () => {
const wrapper = shallowWithIntl(<LeaveTeamModal {...requiredProps}/>).
dive({disableLifecycleMethods: true});
const cancel = wrapper.find('.btn-link').first();
cancel.simulate('click');
expect(requiredProps.onHide).toHaveBeenCalledTimes(1);
});
it('should call leaveTeam and toggleSideBarRightMenu when ok is clicked', () => {
const wrapper = shallowWithIntl(<LeaveTeamModal {...requiredProps}/>).
dive({disableLifecycleMethods: true});
const ok = wrapper.find('.btn-danger').first();
ok.simulate('click');
expect(requiredProps.actions.leaveTeam).toHaveBeenCalledTimes(1);
expect(requiredProps.actions.toggleSideBarRightMenu).toHaveBeenCalledTimes(1);
expect(requiredProps.onHide).toHaveBeenCalledTimes(1);
expect(requiredProps.actions.leaveTeam).
toHaveBeenCalledWith(requiredProps.currentTeamId, requiredProps.currentUserId);
});
it('should call attach and remove event listeners', () => {
document.addEventListener = jest.fn();
document.removeEventListener = jest.fn();
const wrapper = shallowWithIntl(<LeaveTeamModal {...{...requiredProps, show: true}}/>).
dive({disableLifecycleMethods: false});
const instance = wrapper.instance();
expect(document.addEventListener).toHaveBeenCalledTimes(1);
expect(document.removeEventListener).not.toBeCalled();
instance.componentWillUnmount();
expect(document.removeEventListener).toHaveBeenCalledTimes(1);
});
});