Skip to content

Commit 1c8d7cb

Browse files
committed
test: add test case
1 parent d57e8bf commit 1c8d7cb

File tree

3 files changed

+80
-4
lines changed

3 files changed

+80
-4
lines changed

tests/Select.checkable.spec.js

Lines changed: 78 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
/* eslint-disable no-undef */
1+
/* eslint-disable no-undef, react/no-multi-comp */
22
import React from 'react';
33
import { mount } from 'enzyme';
4-
import TreeSelect, { SHOW_PARENT } from '..';
4+
import TreeSelect, { SHOW_PARENT } from '../src';
55

66
describe('TreeSelect.checkable', () => {
77
it('allow clear when controlled', () => {
@@ -54,6 +54,82 @@ describe('TreeSelect.checkable', () => {
5454
expect(wrapper.find('.rc-tree-select-selection__choice')).toHaveLength(0);
5555
});
5656

57+
// https://github.com/ant-design/ant-design/issues/6731
58+
it.only('clear all should clear cache at the same time', () => {
59+
const treeData = [{
60+
label: 'Node1',
61+
value: '0-0',
62+
key: '0-0',
63+
children: [{
64+
label: 'Child Node1',
65+
value: '0-0-0',
66+
key: '0-0-0',
67+
}],
68+
}, {
69+
label: 'Node2',
70+
value: '0-1',
71+
key: '0-1',
72+
children: [{
73+
label: 'Child Node3',
74+
value: '0-1-0',
75+
key: '0-1-0',
76+
}, {
77+
label: 'Child Node4',
78+
value: '0-1-1',
79+
key: '0-1-1',
80+
}, {
81+
label: 'Child Node5',
82+
value: '0-1-2',
83+
key: '0-1-2',
84+
}],
85+
}];
86+
87+
class App extends React.Component {
88+
state = {
89+
value: ['0-0-0'],
90+
disabled: false,
91+
}
92+
93+
handleChange = (value) => {
94+
this.setState({ value });
95+
}
96+
switch = (checked) => {
97+
this.setState({ disabled: checked });
98+
}
99+
render() {
100+
return (<div>
101+
<TreeSelect
102+
treeData={treeData}
103+
treeCheckable
104+
allowClear
105+
multiple
106+
showCheckedStrategy={SHOW_PARENT}
107+
value={this.state.value}
108+
onChange={this.handleChange}
109+
disabled={this.state.disabled}
110+
/>
111+
<input type="checkbox" onChange={e => this.switch(e.target.checked)} id="checkbox"/> 禁用
112+
</div>
113+
);
114+
}
115+
}
116+
const wrapper = mount(<App />);
117+
expect(wrapper.find('.rc-tree-select-selection__choice')).toHaveLength(1);
118+
// open
119+
jest.useFakeTimers();
120+
wrapper.find('.rc-tree-select').simulate('click');
121+
jest.runAllTimers();
122+
// select
123+
wrapper.find('.rc-tree-select-tree-checkbox').at(2).simulate('click');
124+
expect(wrapper.find('.rc-tree-select-selection__choice')).toHaveLength(2);
125+
// clear
126+
wrapper.find('.rc-tree-select-selection__clear').simulate('click');
127+
expect(wrapper.find('.rc-tree-select-selection__choice')).toHaveLength(0);
128+
// disabled
129+
wrapper.find('#checkbox').simulate('change', { target: { checked: true } });
130+
expect(wrapper.find('.rc-tree-select-selection__choice')).toHaveLength(0);
131+
});
132+
57133
// Fix https://github.com/ant-design/ant-design/issues/7312#issuecomment-324865971
58134
it('should be checkable when treeCheckStrictly is true', () => {
59135
const treeData = [

tests/Select.multiple.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import React from 'react';
33
import { mount, render } from 'enzyme';
44
import KeyCode from 'rc-util/lib/KeyCode';
5-
import TreeSelect from '..';
5+
import TreeSelect from '../src';
66

77
describe('TreeSelect.multiple', () => {
88
const treeData = [

tests/Select.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import React from 'react';
33
import { render, mount } from 'enzyme';
44
import KeyCode from 'rc-util/lib/KeyCode';
5-
import TreeSelect from '..';
5+
import TreeSelect from '../src';
66

77
const { TreeNode } = TreeSelect;
88

0 commit comments

Comments
 (0)