Skip to content

Commit

Permalink
test: add test case
Browse files Browse the repository at this point in the history
  • Loading branch information
edison1105 committed Sep 5, 2024
1 parent b362e04 commit ddf5fe3
Showing 1 changed file with 60 additions and 0 deletions.
60 changes: 60 additions & 0 deletions packages/vue/__tests__/e2e/Transition.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1993,6 +1993,66 @@ describe('e2e: Transition', () => {
},
E2E_TIMEOUT,
)

// #11806
test(
'switch between Async and Sync child when transition is not finished',
async () => {
await page().evaluate(() => {
const { createApp, shallowRef, h, nextTick } = (window as any).Vue
createApp({
template: `
<div id="container">
<Transition mode="out-in">
<Suspense>
<component :is="view"/>
</Suspense>
</Transition>
</div>
<button id="toggleBtn" @click="click">button</button>
`,
setup: () => {
const view = shallowRef('SyncB')
const click = async () => {
view.value = 'SyncA'
await nextTick()
view.value = 'AsyncB'
await nextTick()
view.value = 'SyncB'
}
return { view, click }
},
components: {
SyncA: {
setup() {
return () => h('div', 'SyncA')
},
},
AsyncB: {
async setup() {
await nextTick()
return () => h('div', 'AsyncB')
},
},
SyncB: {
setup() {
return () => h('div', 'SyncB')
},
},
},
}).mount('#app')
})

expect(await html('#container')).toBe('<div>SyncB</div>')

await click('#toggleBtn')
await nextFrame()
await transitionFinish()
await transitionFinish()
expect(await html('#container')).toBe('<div class="">SyncB</div>')
},
E2E_TIMEOUT,
)
})

describe('transition with Teleport', () => {
Expand Down

0 comments on commit ddf5fe3

Please sign in to comment.