Something went wrong. Try again.
Monorepo for Tangled forked from tangled.org/core
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132import { describe, expect, it } from "vitest";import { renderOnServer, type RenderTask } from "#lib/ssr/render.ts";
const ctx = { repo: "ada.test/infra", ref: "main" };const markup = (source: string) => (): RenderTask => ({ kind: "markup", source, ctx });
describe("renderOnServer", () => { it("renders within the page budget and spends it", async () => { const budget = { chars: 10, html: 1_000_000 }; expect(await renderOnServer(budget, 6, markup("**a**"))).toContain("<strong>a</strong>"); expect(budget.chars).toBe(4); expect(await renderOnServer(budget, 6, markup("**b**"))).toBeNull(); expect(await renderOnServer(budget, 4, markup("**c**"))).toContain("<strong>c</strong>"); });
it("leaves a render whose html doesn't fit what's left of the page to the browser", async () => { const budget = { chars: 1_000_000, html: 30 }; expect(await renderOnServer(budget, 5, markup("**a**"))).toBeNull(); expect(budget.html).toBe(30); budget.html = 1_000; const html = await renderOnServer(budget, 5, markup("**a**")); expect(budget.html).toBe(1_000 - (html?.length ?? 0)); expect(html?.length).toBeGreaterThan(30); });
it("leaves one document past the per-document cap to the browser", async () => { const budget = { chars: Number.MAX_SAFE_INTEGER, html: 1_000_000 }; expect(await renderOnServer(budget, 4 * 1024 * 1024, markup("x"))).toBeNull(); expect(budget.chars).toBe(Number.MAX_SAFE_INTEGER); });});