diff --git a/packages/dev-server/test/component-composition-runtime.test.ts b/packages/dev-server/test/component-composition-runtime.test.ts index 0110800f..7d5b34fc 100644 --- a/packages/dev-server/test/component-composition-runtime.test.ts +++ b/packages/dev-server/test/component-composition-runtime.test.ts @@ -48,6 +48,48 @@ test("a component nested in another component's slot keeps its boundary", async expect(html).not.toContain('data-component="Badge"'); }); +test("a component in an initially hidden client branch is server-prepared for instantiation", async () => { + const root = mkdtempSync(join(tmpdir(), "wrnexus-component-branch-")); + roots.push(root); + const app = join(root, "app"); + mkdirSync(join(app, "pages"), { recursive: true }); + mkdirSync(join(app, "components"), { recursive: true }); + writeFileSync(join(app, "pages/index.ts"), "export default () => '';\n"); + writeFileSync(join(app, "components/Input.wrn"), "component Input { view { } }\n"); + const definition = Buffer.from( + JSON.stringify([{ cond: "open", body: '
' }]), + "utf8", + ).toString("base64"); + + const handlers = createHandlers({ + mode: "development", + hmr: false, + router: buildRouter(app), + loadModule: async (file) => + basename(file) === "Input.wrn" + ? { + render: (props: Record