@@ -46,6 +46,14 @@ function filter(inputValue, path) {
46
46
return path . some ( option => option . label . toLowerCase ( ) . indexOf ( inputValue . toLowerCase ( ) ) > - 1 ) ;
47
47
}
48
48
49
+ function toggleOpen ( wrapper ) {
50
+ wrapper . find ( '.ant-select-selector' ) . trigger ( 'mousedown' ) ;
51
+ }
52
+
53
+ function isOpen ( wrapper ) {
54
+ return ! ! wrapper . findComponent ( { name : 'Trigger' } ) . props ( ) . popupVisible ;
55
+ }
56
+
49
57
describe ( 'Cascader' , ( ) => {
50
58
focusTest ( Cascader ) ;
51
59
beforeEach ( ( ) => {
@@ -65,7 +73,7 @@ describe('Cascader', () => {
65
73
it ( 'popup correctly when panel is open' , async ( ) => {
66
74
const wrapper = mount ( Cascader , { props : { options } , sync : false , attachTo : 'body' } ) ;
67
75
await asyncExpect ( ( ) => {
68
- wrapper . find ( 'input' ) . trigger ( 'click' ) ;
76
+ toggleOpen ( wrapper ) ;
69
77
} ) ;
70
78
expect ( $$ ( '.ant-cascader-menus' ) . length ) . toBe ( 1 ) ;
71
79
await asyncExpect ( ( ) => {
@@ -95,7 +103,7 @@ describe('Cascader', () => {
95
103
} ) ;
96
104
97
105
await asyncExpect ( ( ) => {
98
- wrapper . find ( 'input' ) . trigger ( 'click' ) ;
106
+ toggleOpen ( wrapper ) ;
99
107
} ) ;
100
108
expect ( $$ ( '.ant-cascader-menus' ) . length ) . toBe ( 1 ) ;
101
109
await asyncExpect ( ( ) => {
@@ -106,9 +114,8 @@ describe('Cascader', () => {
106
114
it ( 'can be selected' , async ( ) => {
107
115
const wrapper = mount ( Cascader , { props : { options } , sync : false } ) ;
108
116
await asyncExpect ( ( ) => {
109
- wrapper . find ( 'input' ) . trigger ( 'click' ) ;
117
+ toggleOpen ( wrapper ) ;
110
118
} ) ;
111
-
112
119
await asyncExpect ( ( ) => {
113
120
$$ ( '.ant-cascader-menu' ) [ 0 ] . querySelectorAll ( '.ant-cascader-menu-item' ) [ 0 ] . click ( ) ;
114
121
} ) ;
@@ -134,23 +141,36 @@ describe('Cascader', () => {
134
141
} ) ;
135
142
} ) ;
136
143
137
- it ( 'backspace should work with `Cascader[showSearch]`' , async ( ) => {
144
+ fit ( 'backspace should work with `Cascader[showSearch]`' , async ( ) => {
138
145
const wrapper = mount ( Cascader , { props : { options, showSearch : true } , sync : false } ) ;
139
146
await asyncExpect ( ( ) => {
140
147
wrapper . find ( 'input' ) . element . value = '123' ;
141
148
wrapper . find ( 'input' ) . trigger ( 'input' ) ;
142
149
} ) ;
143
150
await asyncExpect ( ( ) => {
144
- expect ( wrapper . vm . inputValue ) . toBe ( '123' ) ;
151
+ expect ( isOpen ( wrapper ) ) . toBeTruthy ( ) ;
145
152
} ) ;
146
153
await asyncExpect ( ( ) => {
147
154
wrapper . find ( 'input' ) . element . keyCode = KeyCode . BACKSPACE ;
148
155
wrapper . find ( 'input' ) . trigger ( 'keydown' ) ;
149
156
} ) ;
150
157
await asyncExpect ( ( ) => {
151
- // trigger onKeyDown will not trigger onChange by default, so the value is still '123'
152
- expect ( wrapper . vm . inputValue ) . toBe ( '123' ) ;
158
+ expect ( isOpen ( wrapper ) ) . toBeTruthy ( ) ;
159
+ } ) ;
160
+ await asyncExpect ( ( ) => {
161
+ wrapper . find ( 'input' ) . element . value = '' ;
162
+ wrapper . find ( 'input' ) . trigger ( 'input' ) ;
163
+ } ) ;
164
+ await asyncExpect ( ( ) => {
165
+ expect ( isOpen ( wrapper ) ) . toBeTruthy ( ) ;
153
166
} ) ;
167
+ // await asyncExpect(() => {
168
+ // wrapper.find('input').element.keyCode = KeyCode.BACKSPACE;
169
+ // wrapper.find('input').trigger('keydown');
170
+ // });
171
+ // await asyncExpect(() => {
172
+ // expect(isOpen(wrapper)).toBeFalsy();
173
+ // }, 0);
154
174
} ) ;
155
175
156
176
describe ( 'limit filtered item count' , ( ) => {
@@ -191,7 +211,6 @@ describe('Cascader', () => {
191
211
} ) ;
192
212
193
213
it ( 'negative limit' , async ( ) => {
194
- const errorSpy = jest . spyOn ( console , 'error' ) . mockImplementation ( ( ) => { } ) ;
195
214
const wrapper = mount ( Cascader , {
196
215
props : { options, showSearch : { filter, limit : - 1 } } ,
197
216
sync : false ,
@@ -203,9 +222,6 @@ describe('Cascader', () => {
203
222
await asyncExpect ( ( ) => {
204
223
expect ( $$ ( '.ant-cascader-menu-item' ) . length ) . toBe ( 2 ) ;
205
224
} , 0 ) ;
206
- expect ( errorSpy ) . toBeCalledWith (
207
- "Warning: [antdv: Cascader] 'limit' of showSearch in Cascader should be positive number or false." ,
208
- ) ;
209
225
} ) ;
210
226
} ) ;
211
227
} ) ;
0 commit comments