diff --git a/packages/runtime-vapor/__tests__/hydration.spec.ts b/packages/runtime-vapor/__tests__/hydration.spec.ts
index 20b357c50..86c110e20 100644
--- a/packages/runtime-vapor/__tests__/hydration.spec.ts
+++ b/packages/runtime-vapor/__tests__/hydration.spec.ts
@@ -2644,6 +2644,109 @@ describe('Vapor Mode hydration', () => {
`bar`,
)
})
+
+ test('forwarded slot', async () => {
+ const data = reactive({
+ foo: 'foo',
+ bar: 'bar',
+ })
+ const { container } = await testHydration(
+ `
+
+
+ {{data.foo}}
+
+
{{data.bar}}
+
+ `,
+ {
+ Parent: `
`,
+ Child: `
`,
+ },
+ data,
+ )
+ expect(container.innerHTML).toBe(
+ `
` +
+ `
` +
+ `
` +
+ `` +
+ `foo` +
+ `` +
+ `` +
+ `
` +
+ `
` +
+ `
bar
` +
+ `
`,
+ )
+
+ data.foo = 'foo1'
+ data.bar = 'bar1'
+ await nextTick()
+ expect(container.innerHTML).toBe(
+ `` +
+ `
` +
+ `
` +
+ `` +
+ `foo1` +
+ `` +
+ `` +
+ `
` +
+ `
` +
+ `
bar1
` +
+ `
`,
+ )
+ })
+
+ test('forwarded slot with empty content', async () => {
+ const data = reactive({
+ foo: 'foo',
+ })
+ const { container } = await testHydration(
+ `
+
+ `,
+ {
+ Foo: `
+
+
+
+
+
+ `,
+ Bar: `
+
+
+
+
+
+ `,
+ Baz: `
+
+
+
+
+
+ `,
+ Qux: `
+
+ `,
+ },
+ data,
+ )
+
+ expect(container.innerHTML).toBe(
+ ``,
+ )
+
+ data.foo = 'bar'
+ await nextTick()
+ expect(container.innerHTML).toBe(
+ ``,
+ )
+ })
})
describe.todo('transition', async () => {