@@ -493,4 +493,50 @@ describe('api: template refs', () => {
493
493
await nextTick ( )
494
494
expect ( mapRefs ( ) ) . toMatchObject ( [ '2' , '3' , '4' ] )
495
495
} )
496
+
497
+ // #6697 v-for ref behaves differently under production and development
498
+ test ( 'named ref in v-for , should be responsive when rendering' , async ( ) => {
499
+ const list = ref ( [ 1 , 2 , 3 ] )
500
+ const listRefs = ref ( [ ] )
501
+ const App = {
502
+ setup ( ) {
503
+ return { listRefs }
504
+ } ,
505
+ render ( ) {
506
+ return h ( 'div' , null , [
507
+ h ( 'div' , null , String ( listRefs . value ) ) ,
508
+ h (
509
+ 'ul' ,
510
+ list . value . map ( i =>
511
+ h (
512
+ 'li' ,
513
+ {
514
+ ref : 'listRefs' ,
515
+ ref_for : true
516
+ } ,
517
+ i
518
+ )
519
+ )
520
+ )
521
+ ] )
522
+ }
523
+ }
524
+ const root = nodeOps . createElement ( 'div' )
525
+ render ( h ( App ) , root )
526
+
527
+ await nextTick ( )
528
+ expect ( String ( listRefs . value ) ) . toBe (
529
+ '[object Object],[object Object],[object Object]'
530
+ )
531
+ expect ( serializeInner ( root ) ) . toBe (
532
+ '<div><div>[object Object],[object Object],[object Object]</div><ul><li>1</li><li>2</li><li>3</li></ul></div>'
533
+ )
534
+
535
+ list . value . splice ( 0 , 1 )
536
+ await nextTick ( )
537
+ expect ( String ( listRefs . value ) ) . toBe ( '[object Object],[object Object]' )
538
+ expect ( serializeInner ( root ) ) . toBe (
539
+ '<div><div>[object Object],[object Object]</div><ul><li>2</li><li>3</li></ul></div>'
540
+ )
541
+ } )
496
542
} )
0 commit comments