@@ -201,4 +201,66 @@ describe("Input Select Testing", () => {
201201 await app . vm . $nextTick ( ) ;
202202 expect ( input . element . getAttribute ( 'tabindex' ) ) . toBe ( "none" )
203203 } )
204+
205+ test ( "Multiple attr should show first selected item as title" , async ( ) => {
206+ const wrap = defaultMount ( defineSelectComponent ( {
207+ multiple : true ,
208+ options : defaultOptions
209+ } ) )
210+ const form = ( wrap . vm as any ) . form ;
211+ form . setValues ( {
212+ [ name ] : [ defaultOptions [ 0 ] . value ]
213+ } )
214+ await wrap . vm . $nextTick ( ) ;
215+ expect ( wrap . text ( ) ) . toBe ( defaultOptions [ 0 ] . label ) ;
216+ } )
217+ test ( "Multiple attr should show first selected item + N as title if was selected more then one" , async ( ) => {
218+ const wrap = defaultMount ( defineSelectComponent ( {
219+ multiple : true ,
220+ options : defaultOptions
221+ } ) )
222+ const form = ( wrap . vm as any ) . form ;
223+ form . setValues ( {
224+ [ name ] : defaultOptions . map ( i => i . value )
225+ } )
226+ await wrap . vm . $nextTick ( ) ;
227+ expect ( wrap . text ( ) ) . toBe ( defaultOptions [ 0 ] . label + ' + ' + ( defaultOptions . length - 1 ) ) ;
228+ } )
229+
230+ test ( "Multiple attr should show selected items" , async ( ) => {
231+ const wrap = defaultMount ( defineSelectComponent ( {
232+ multiple : true ,
233+ options : defaultOptions
234+ } ) )
235+ const form = ( wrap . vm as any ) . form as Form ;
236+ form . setValues ( {
237+ [ name ] : [ defaultOptions [ 1 ] . value ]
238+ } )
239+ currentItem = wrap . find ( '.container-input-select-current' )
240+ expect ( currentItem . exists ( ) ) . toBe ( true ) ;
241+ await currentItem . trigger ( 'click' ) ;
242+
243+ expect ( wrap . findAll ( '.input-select-option-list-item_active' ) . map ( item => item . text ( ) ) ) . toEqual ( [ defaultOptions [ 1 ] . label ] )
244+ } )
245+ test ( "Selecting items should update value(multiple attr" , async ( ) => {
246+ const wrap = defaultMount ( defineSelectComponent ( {
247+ multiple : true ,
248+ options : defaultOptions
249+ } ) )
250+ const form = ( wrap . vm as any ) . form as Form ;
251+ currentItem = wrap . find ( '.container-input-select-current' )
252+ await currentItem . trigger ( 'click' ) ;
253+
254+ await wrap . findAll ( '.input-select-option-list-item' ) . reduce ( ( acc , item ) => {
255+ return acc . then ( ( ) => item . trigger ( 'click' ) )
256+ } , Promise . resolve ( ) )
257+
258+ expect ( form . getValueByName ( name ) ) . toEqual ( defaultOptions . map ( item => item . value ) )
259+
260+ await wrap . findAll ( '.input-select-option-list-item' ) . reduce ( ( acc , item ) => {
261+ return acc . then ( ( ) => item . trigger ( 'click' ) )
262+ } , Promise . resolve ( ) )
263+
264+ expect ( form . getValueByName ( name ) ) . toEqual ( [ ] )
265+ } )
204266} )
0 commit comments