44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
// 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 { isFullBleedRoute, 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);
|
|
});
|