]+)>/g)].map((match) => match[1]!);
const conditional = markers.find((marker) => marker.includes("data-wrn-if="))!;
const locals = /data-wrn-loop-locals="([^"]+)"/.exec(conditional);
expect(conditional?.trim().startsWith("data-wrn-if=")).toBe(true);
expect(locals).not.toBeNull();
const decoded = JSON.parse(Buffer.from(locals![1]!, "base64").toString());
expect(decoded.field.id).toBe("name");
expect(decoded.page.id).toBe("page");
const nestedEach = markers.filter((marker) => marker.includes("data-wrn-each="))[1]!;
const eachLocals = /data-wrn-loop-locals="([^"]+)"/.exec(nestedEach);
expect(eachLocals).not.toBeNull();
expect(JSON.parse(Buffer.from(eachLocals![1]!, "base64").toString()).page.id).toBe("page");
const child = /]+)>/.exec(html)!;
const childLocals = /data-wrn-loop-locals="([^"]+)"/.exec(child[1]!);
expect(childLocals).not.toBeNull();
expect(JSON.parse(Buffer.from(childLocals![1]!, "base64").toString()).field.id).toBe("name");
const childCode = new Bun.Transpiler({ loader: "ts" }).transformSync(
compile("component Child { view { } }", "Child.wrn").code,
);
const childModule = await import(
"data:text/javascript;base64," + Buffer.from(childCode).toString("base64")
);
const renderedChild = childModule.render({
"data-wrn-loop-locals": childLocals![1]!,
"data-wrn-if": "forbidden",
});
expect(renderedChild).toContain('data-wrn-loop-locals="' + childLocals![1] + '"');
expect(renderedChild).not.toContain('data-wrn-if="forbidden"');
});