// The shell's per-route layout: which paths are full-bleed. Run by `npm test`. import assert from "node:assert/strict"; import { test } from "node:test"; import { MOVED_ROUTES, isFullBleedRoute, movedHref, visibleNavItems, } from "../src/shell/routes.ts"; test("the start page is full-bleed", () => { assert.equal(isFullBleedRoute("/"), true); }); test("the hive directory moved off / and is not full-bleed", () => { assert.equal(isFullBleedRoute("/agents"), false); }); test("an agent's terminal and a subagent's are full-bleed", () => { assert.equal(isFullBleedRoute("/agents/iris/terminal"), true); assert.equal( isFullBleedRoute("/agents/iris/subagents/scout-1/terminal"), true, ); }); test("the agents page and other routes are not full-bleed", () => { for (const path of ["/agents", "/agents/iris", "/jobs", "/issues"]) { assert.equal(isFullBleedRoute(path), false, path); } }); test("a terminal path with extra segments is not full-bleed", () => { assert.equal(isFullBleedRoute("/agents/iris/terminal/extra"), false); assert.equal(isFullBleedRoute("/agents//terminal"), false); }); const NAV = [{ href: "/agents" }, { href: "/components" }, { href: "/jobs" }]; test("hide developer details takes the components tab out of the nav", () => { assert.deepEqual( visibleNavItems(NAV, true).map((i) => i.href), ["/agents", "/jobs"], ); }); test("with it off the nav is whole again", () => { assert.deepEqual(visibleNavItems(NAV, false), NAV); }); test("an old address goes to the tab that holds its page, query kept", () => { assert.equal(movedHref("/alerts", ""), "/reports"); assert.equal(movedHref("/issues", ""), "/reports"); assert.equal(movedHref("/review", ""), "/jobs"); assert.equal(movedHref("/schedules", ""), "/messages"); assert.equal( movedHref("/builds", "run=atlas-abc-1"), "/jobs?run=atlas-abc-1", ); }); test("a current tab is not moved", () => { assert.equal(movedHref("/jobs", ""), null); assert.equal(movedHref("/agents", "x=1"), null); }); test("no old address leads to another old address", () => { for (const to of Object.values(MOVED_ROUTES)) { assert.equal(to in MOVED_ROUTES, false, to); } });