Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/frontend/packages/swarm-ui/test/routes.test.mjs

81 lines
2.6 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 {
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);
}
});
test("the old notifications list goes to the swarm tab, the editor pages stay", () => {
assert.equal(movedHref("/notifications", ""), "/swarm");
assert.equal(movedHref("/notifications/some-flow", ""), null);
});
test("a group of agent terminals is full-bleed", () => {
assert.equal(isFullBleedRoute("/agents/group/ab12cd34"), true);
assert.equal(isFullBleedRoute("/agents/group"), false);
});