diff --git a/packages/runtime-dom/__tests__/customElement.spec.ts b/packages/runtime-dom/__tests__/customElement.spec.ts index 36c9e918c9a..3e48edffe6d 100644 --- a/packages/runtime-dom/__tests__/customElement.spec.ts +++ b/packages/runtime-dom/__tests__/customElement.spec.ts @@ -1430,6 +1430,44 @@ describe('defineCustomElement', () => { app.unmount() }) + test('teleport target is ancestor of custom element host', async () => { + const Child = defineCustomElement( + { + render() { + return [ + h(Teleport, { to: '#t1' }, [renderSlot(this.$slots, 'header')]), + ] + }, + }, + { shadowRoot: false }, + ) + customElements.define('my-el-teleport-child-target', Child) + + const App = { + render() { + return h('div', { id: 't1' }, [ + h('my-el-teleport-child-target', null, { + default: () => [h('div', { slot: 'header' }, 'header')], + }), + ]) + }, + } + const app = createApp(App) + app.mount(container) + + const target1 = document.getElementById('t1')! + expect(target1.outerHTML).toBe( + `