File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed 
packages/runtime-dom/__tests__/directives Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change 55  nextTick , 
66  ref , 
77  render , 
8+   vModelCheckbox , 
89  vModelDynamic , 
910  withDirectives , 
1011}  from  '@vue/runtime-dom' 
@@ -1445,4 +1446,51 @@ describe('vModel', () => {
14451446
14461447    expect ( inputNum1 . value ) . toBe ( '1' ) 
14471448  } ) 
1449+ 
1450+   it ( `should support mutating an array or set value for a checkbox` ,  async  ( )  =>  { 
1451+     const  component  =  defineComponent ( { 
1452+       data ( )  { 
1453+         return  {  value : [ ]  } 
1454+       } , 
1455+       render ( )  { 
1456+         return  [ 
1457+           withDirectives ( 
1458+             h ( 'input' ,  { 
1459+               type : 'checkbox' , 
1460+               class : 'foo' , 
1461+               value : 'foo' , 
1462+               'onUpdate:modelValue' : setValue . bind ( this ) , 
1463+             } ) , 
1464+             [ [ vModelCheckbox ,  this . value ] ] , 
1465+           ) , 
1466+         ] 
1467+       } , 
1468+     } ) 
1469+     render ( h ( component ) ,  root ) 
1470+ 
1471+     const  foo  =  root . querySelector ( '.foo' ) 
1472+     const  data  =  root . _vnode . component . data 
1473+ 
1474+     expect ( foo . checked ) . toEqual ( false ) 
1475+ 
1476+     data . value . push ( 'foo' ) 
1477+     await  nextTick ( ) 
1478+     expect ( foo . checked ) . toEqual ( true ) 
1479+ 
1480+     data . value [ 0 ]  =  'bar' 
1481+     await  nextTick ( ) 
1482+     expect ( foo . checked ) . toEqual ( false ) 
1483+ 
1484+     data . value  =  new  Set ( ) 
1485+     await  nextTick ( ) 
1486+     expect ( foo . checked ) . toEqual ( false ) 
1487+ 
1488+     data . value . add ( 'foo' ) 
1489+     await  nextTick ( ) 
1490+     expect ( foo . checked ) . toEqual ( true ) 
1491+ 
1492+     data . value . delete ( 'foo' ) 
1493+     await  nextTick ( ) 
1494+     expect ( foo . checked ) . toEqual ( false ) 
1495+   } ) 
14481496} ) 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments