From: daiwei Date: Mon, 17 Nov 2025 08:36:49 +0000 (+0800) Subject: test(runtime-vapor): add tests for dynamic components with vapor and vdom children X-Git-Tag: v3.6.0-alpha.5~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=01fdf76be8dcb303033d1c4cbc8de06268554514;p=thirdparty%2Fvuejs%2Fcore.git test(runtime-vapor): add tests for dynamic components with vapor and vdom children --- diff --git a/packages/runtime-vapor/__tests__/vdomInterop.spec.ts b/packages/runtime-vapor/__tests__/vdomInterop.spec.ts index 50b190c9b7..e3b7bfff64 100644 --- a/packages/runtime-vapor/__tests__/vdomInterop.spec.ts +++ b/packages/runtime-vapor/__tests__/vdomInterop.spec.ts @@ -14,6 +14,7 @@ import { provide, ref, renderSlot, + resolveDynamicComponent, shallowRef, toDisplayString, useModel, @@ -323,7 +324,38 @@ describe('vdomInterop', () => { }) }) - describe.todo('dynamic component', () => {}) + describe('dynamic component', () => { + it('dynamic component with vapor child', async () => { + const VaporChild = defineVaporComponent({ + setup() { + return template('
vapor child
')() as any + }, + }) + + const VdomChild = defineComponent({ + setup() { + return () => h('div', 'vdom child') + }, + }) + + const view = shallowRef(VaporChild) + const { html } = define({ + setup() { + return () => h(resolveDynamicComponent(view.value) as any) + }, + }).render() + + expect(html()).toBe('
vapor child
') + + view.value = VdomChild + await nextTick() + expect(html()).toBe('
vdom child
') + + view.value = VaporChild + await nextTick() + expect(html()).toBe('
vapor child
') + }) + }) describe('attribute fallthrough', () => { it('should fallthrough attrs to vdom child', () => {