import { expect, test } from "bun:test"; import { generate, parse } from "../src/index.ts"; test("server-only loader data renders native input attributes without client state", async () => { const code = generate( parse(`page Profile { load server account { return {} } view {
} }`), ); const javascript = new Bun.Transpiler({ loader: "ts" }).transformSync(code); const page = await import( `data:text/javascript;base64,${Buffer.from(javascript).toString("base64")}` ); const html = await page.default({ account: { name: 'A ""', readonly: false, theme: "dark", identity: { name: "Alice" } }, }); expect(html).toContain('value="A "<User>""'); expect(html).not.toContain(" readonly"); expect(html).toContain(''); expect(html).toContain(''); expect(html).toContain('identity="{"name":"Alice"}"'); expect(html).not.toContain("data-wrn-bind"); expect(html).not.toContain("{account."); });