Make if and each blocks reactive on the client
Quality / quality (ubuntu-latest) (push) Failing after 9m49s
Quality / quality (windows-latest) (push) Canceled after 0s

This commit is contained in:
2026-08-19 00:22:00 +05:30
parent c0c2fa4595
commit f199385204
8 changed files with 330 additions and 27 deletions
+17
View File
@@ -1053,6 +1053,23 @@ component Banner {
expect(output).toContain("Visible");
expect(output).toContain("Hidden");
});
test("if and each blocks emit browser control metadata while preserving SSR", () => {
const output = generate(
parse(`component ClientBlocks {
state open = false
state items = ["a"]
view {
{#if open}<p>Open</p>{:else}<p>Closed</p>{/if}
{#each items as item}<span>{item}</span>{:empty}<i>Empty</i>{/each}
}
}`),
);
expect(output).toContain("data-wrn-if=");
expect(output).toContain("data-wrn-each=");
expect(output).toContain("Array.isArray(items)");
});
test("component array props support each blocks", () => {
const output = generate(
parse(`