const { test } = require("node:test"); const assert = require("node:assert"); const { renderTreeToHtml, renderMenu, esc } = require("../lib/renderTree"); const { getPreset } = require("../lib/layoutTree"); const CTX = { title: "T", body: "

BODY

", brand: { name: "Acme", logo: null }, menu: [{ items: [{ label: "Home", link: "/" }, { label: "Views", link: "/viewedit", subitems: [{ label: "New", link: "/viewedit/new" }] }] }], alerts: [{ type: "success", msg: "saved" }], currentUrl: "/", }; function balanced(html) { // crude tag-name-agnostic sanity: angle brackets balance return (html.match(//g) || []).length; } test("topnav preset renders navbar + body slot + footer", () => { const html = renderTreeToHtml(getPreset("topnav"), CTX); assert.match(html, /