@@ -75,7 +75,6 @@ describe("Input Select Testing", () => {
7575 } )
7676 await app . vm . $nextTick ( )
7777 await wait ( 233 )
78- console . log ( app . html ( ) )
7978 expect ( app . text ( ) ) . toBe ( defaultOptions [ 0 ] . label ) ;
8079 } )
8180 test ( "Открытие списка выборки по нажатию на иконку" , async ( ) => {
@@ -88,12 +87,12 @@ describe("Input Select Testing", () => {
8887 expect ( app . text ( ) ) . toBe ( defaultOptions . map ( a => a . label ) . join ( '' ) )
8988 } )
9089 test ( "Открытие списка выборки по нажатию space при фокусе на поле" , async ( ) => {
91- await app . get ( '.input-select' ) . trigger ( 'keyup .space' ) ;
90+ await app . get ( '.input-select' ) . trigger ( 'keydown .space' ) ;
9291 expect ( app . text ( ) ) . toBe ( defaultOptions . map ( a => a . label ) . join ( '' ) )
9392 } )
9493 test ( "Переключение значений при нажатии клавиши вниз при фокусе на поле." , async ( ) => {
9594 function triggerDown ( ) {
96- return app . get ( '.input-select' ) . trigger ( 'keydown.down' ) ;
95+ return app . get ( '.input-select' ) . trigger ( 'keydown' , { key : "ArrowDown" } ) ;
9796 }
9897
9998 await triggerDown ( )
@@ -144,10 +143,9 @@ describe("Input Select Testing", () => {
144143 } )
145144
146145 test ( "Disabled select" , async ( ) => {
147-
148146 form . disable ( )
149147 await app . vm . $nextTick ( )
150- expect ( app . find ( '.input-select_disabled' ) . exists ( ) ) . toBe ( true )
148+ expect ( app . find ( '.vf- input-select_disabled' ) . exists ( ) ) . toBe ( true )
151149
152150 function triggerDown ( ) {
153151 return app . get ( '.input-select' ) . trigger ( 'keydown.down' ) ;
@@ -160,7 +158,7 @@ describe("Input Select Testing", () => {
160158 test ( "Error Select" , async ( ) => {
161159 expect ( form . validate ( ) ) . toBe ( false ) ;
162160 await app . vm . $nextTick ( )
163- expect ( app . find ( '.input-select_error' ) . exists ( ) ) . toBe ( true )
161+ expect ( app . find ( '.vf- input-select_error' ) . exists ( ) ) . toBe ( true )
164162 expect ( app . text ( ) ) . toBe ( STORE . requiredMessage )
165163 } )
166164
@@ -186,14 +184,14 @@ describe("Input Select Testing", () => {
186184 expect ( input . element . getAttribute ( 'tabindex' ) ) . toBe ( "0" )
187185 } )
188186 test ( "Press down should change value" , async ( ) => {
189- await input . trigger ( 'keydown.down' ) ;
187+ await input . trigger ( 'keydown' , { key : "ArrowDown" } ) ;
190188 expect ( form . getValueByName ( name ) ) . toBe ( defaultOptions [ 0 ] . value )
191189
192- await input . trigger ( 'keydown.down' ) ;
190+ await input . trigger ( 'keydown' , { key : "ArrowDown" } ) ;
193191 expect ( form . getValueByName ( name ) ) . toBe ( defaultOptions [ 1 ] . value )
194192 } )
195193 test ( "Press up should change value" , async ( ) => {
196- await input . trigger ( 'keydown.up' ) ;
194+ await input . trigger ( 'keydown' , { key : "ArrowUp" } ) ;
197195 expect ( form . getValueByName ( name ) ) . toBe ( defaultOptions [ 2 ] . value )
198196 } )
199197 test ( "Press up and down not work in disabled status" , async ( ) => {
@@ -280,4 +278,108 @@ describe("Input Select Testing", () => {
280278
281279 expect ( form . getValueByName ( name ) ) . toEqual ( defaultOptions . map ( item => item . value ) . slice ( 0 , 2 ) )
282280 } )
281+
282+ test ( "Shift + ArrowDown: _ -> 0 = _, 1" , async ( ) => {
283+ const wrap = defaultMount ( defineSelectComponent ( {
284+ multiple : true ,
285+ options : defaultOptions ,
286+ limit : 2
287+ } ) )
288+ const form = ( wrap . vm as any ) . form as Form ;
289+ currentItem = wrap . find ( '.container-input-select-current' )
290+ await currentItem . trigger ( 'keydown.shift.down' ) ;
291+
292+ expect ( form . getValueByName ( name ) ) . toEqual ( [ defaultOptions [ 0 ] . value ] ) ;
293+ } )
294+ test ( "Shift + ArrowDown: 1 -> 0 = 1, 1" , async ( ) => {
295+ const wrap = defaultMount ( defineSelectComponent ( {
296+ multiple : true ,
297+ options : defaultOptions ,
298+ } ) )
299+ const form = ( wrap . vm as any ) . form as Form ;
300+ form . setValues ( {
301+ [ name ] : [ defaultOptions [ 1 ] . value ]
302+ } )
303+ await app . vm . $nextTick ( )
304+ await wrap . find ( '.container-input-select-current' ) . trigger ( 'click' ) ;
305+ currentItem = wrap . find ( '.container-input-select-current' )
306+ await currentItem . trigger ( 'keydown.shift' , {
307+ key : "ArrowDown"
308+ } ) ;
309+
310+ expect ( form . getValueByName ( name ) ) . toEqual ( [ defaultOptions [ 1 ] . value , defaultOptions [ 2 ] . value ] ) ;
311+ } )
312+ test ( "Shift + ArrowDown: 0 -> 1 = 0, 0" , async ( ) => {
313+ const wrap = defaultMount ( defineSelectComponent ( {
314+ multiple : true ,
315+ options : defaultOptions ,
316+ } ) )
317+ const form = ( wrap . vm as any ) . form as Form ;
318+ form . setValues ( {
319+ [ name ] : [ defaultOptions [ 1 ] . value ]
320+ } )
321+ await app . vm . $nextTick ( )
322+ await wrap . find ( '.container-input-select-current' ) . trigger ( 'click' ) ;
323+ currentItem = wrap . find ( '.container-input-select-current' )
324+
325+ await currentItem . trigger ( 'keydown.ctrl' , { key : "ArrowUp" } )
326+ await currentItem . trigger ( 'keydown.shift' , {
327+ key : "ArrowDown"
328+ } ) ;
329+
330+ expect ( form . getValueByName ( name ) ) . toEqual ( [ ] ) ;
331+ } )
332+ test ( "Shift + ArrowDown: 0 -> 0 = 1, 0" , async ( ) => {
333+ const wrap = defaultMount ( defineSelectComponent ( {
334+ multiple : true ,
335+ options : defaultOptions ,
336+ } ) )
337+ const form = ( wrap . vm as any ) . form as Form ;
338+ await wrap . find ( '.container-input-select-current' ) . trigger ( 'click' ) ;
339+ currentItem = wrap . find ( '.container-input-select-current' )
340+
341+ await currentItem . trigger ( 'keydown.ctrl' , { key : "ArrowDown" } )
342+ await currentItem . trigger ( 'keydown.shift' , {
343+ key : "ArrowDown"
344+ } ) ;
345+ expect ( form . getValueByName ( name ) ) . toEqual ( [ defaultOptions [ 0 ] . value ] ) ;
346+ await currentItem . trigger ( 'keydown.shift' , {
347+ key : "ArrowDown"
348+ } ) ;
349+ expect ( form . getValueByName ( name ) ) . toEqual ( [ defaultOptions [ 0 ] . value , defaultOptions [ 1 ] . value ] ) ;
350+ } )
351+ test ( "Shift + ArrowDown: 1 -> 1 = 0, 1" , async ( ) => {
352+ const wrap = defaultMount ( defineSelectComponent ( {
353+ multiple : true ,
354+ options : defaultOptions ,
355+ } ) )
356+ const form = ( wrap . vm as any ) . form as Form ;
357+ await wrap . find ( '.container-input-select-current' ) . trigger ( 'click' ) ;
358+ currentItem = wrap . find ( '.container-input-select-current' )
359+
360+ await currentItem . trigger ( 'keydown.shift' , { key : "ArrowDown" } ) ;
361+ await currentItem . trigger ( 'keydown.shift' , { key : "ArrowDown" } ) ;
362+
363+ await currentItem . trigger ( 'keydown.ctrl' , { key : "ArrowUp" } ) ;
364+
365+ expect ( form . getValueByName ( name ) ) . toEqual ( [ defaultOptions [ 0 ] . value , defaultOptions [ 1 ] . value ] ) ;
366+ await currentItem . trigger ( 'keydown.shift' , { key : "ArrowDown" } ) ;
367+ expect ( form . getValueByName ( name ) ) . toEqual ( [ defaultOptions [ 1 ] . value ] ) ;
368+ } )
369+
370+ test ( "Double SPACE press should not make effect for multiple" , async ( ) => {
371+ const wrap = defaultMount ( defineSelectComponent ( {
372+ multiple : true ,
373+ options : defaultOptions ,
374+ limit : 2
375+ } ) )
376+ const form = ( wrap . vm as any ) . form as Form ;
377+ form . setValues ( {
378+ [ name ] : [ ]
379+ } )
380+ currentItem = wrap . find ( '.container-input-select-current' )
381+ await currentItem . trigger ( 'keydown.space' ) ;
382+ await currentItem . trigger ( 'keydown.space' ) ;
383+ expect ( form . getValueByName ( name ) . length ) . toBe ( 0 )
384+ } )
283385} )
0 commit comments