File tree Expand file tree Collapse file tree
packages-private/vapor-e2e-test
transition-group/cases/vapor-transition-group
packages/runtime-vapor/src/components Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -146,6 +146,59 @@ describe('vapor transition-group', () => {
146146 E2E_TIMEOUT ,
147147 )
148148
149+ test (
150+ 'for + if enter' ,
151+ async ( ) => {
152+ const btnSelector = '.for-if-enter > button.toggle'
153+ const addBtnSelector = '.for-if-enter > button.add'
154+ const containerSelector = '.for-if-enter > div'
155+ expect ( await html ( containerSelector ) ) . toBe ( `<ul></ul>` )
156+
157+ expect (
158+ ( await transitionStart ( btnSelector , containerSelector ) ) . innerHTML ,
159+ ) . toBe (
160+ `<ul>` +
161+ `<li class="test v-enter-from v-enter-active">0</li>` +
162+ `<li class="test v-enter-from v-enter-active">1</li>` +
163+ `</ul>` ,
164+ )
165+
166+ await waitForInnerHTML (
167+ containerSelector ,
168+ `<ul>` +
169+ `<li class="test v-enter-active v-enter-to">0</li>` +
170+ `<li class="test v-enter-active v-enter-to">1</li>` +
171+ `</ul>` ,
172+ )
173+
174+ await waitForInnerHTML (
175+ containerSelector ,
176+ `<ul><li class="test">0</li><li class="test">1</li></ul>` ,
177+ )
178+
179+ // add a new item
180+ expect (
181+ ( await transitionStart ( addBtnSelector , containerSelector ) ) . innerHTML ,
182+ ) . toBe (
183+ `<ul>` +
184+ `<li class="test">0</li>` +
185+ `<li class="test">1</li>` +
186+ `<li class="test v-enter-from v-enter-active">2</li>` +
187+ `</ul>` ,
188+ )
189+
190+ await waitForInnerHTML (
191+ containerSelector ,
192+ `<ul>` +
193+ `<li class="test">0</li>` +
194+ `<li class="test">1</li>` +
195+ `<li class="test">2</li>` +
196+ `</ul>` ,
197+ )
198+ } ,
199+ E2E_TIMEOUT ,
200+ )
201+
149202 test (
150203 'leave' ,
151204 async ( ) => {
Original file line number Diff line number Diff line change 1+ <script setup vapor>
2+ import { ref } from ' vue'
3+
4+ const show = ref (false )
5+ const list = ref ([0 , 1 ])
6+ </script >
7+
8+ <template >
9+ <div class =" for-if-enter" >
10+ <button class =" toggle" @click =" show = !show" >toggle button</button >
11+ <button class =" add" @click =" list.push(list.length)" >add button</button >
12+ <div >
13+ <transition-group tag =" ul" >
14+ <template v-for =" value in list " >
15+ <li v-if =" show" :key =" value" class =" test" >
16+ {{ value }}
17+ </li >
18+ </template >
19+ </transition-group >
20+ </div >
21+ </div >
22+ </template >
Original file line number Diff line number Diff line change @@ -360,7 +360,7 @@ export function setTransitionHooksOnFragment(
360360) : void {
361361 if ( isFragment ( block ) ) {
362362 block . $transition = hooks
363- if ( block . nodes && isFragment ( block . nodes ) ) {
363+ if ( block . nodes && ( isFragment ( block . nodes ) || isArray ( block . nodes ) ) ) {
364364 setTransitionHooksOnFragment ( block . nodes , hooks )
365365 }
366366 } else if ( isArray ( block ) ) {
You can’t perform that action at this time.
0 commit comments