brain / console /src /workspaces /workspaceRoutes.test.mjs
Leon4gr45's picture
Deploy complete BrainAPI source 81ad5ce1c9c1
eb60b6b verified
Raw History Blame Contribute Delete
1.77 kB
import assert from "node:assert/strict";
import test from "node:test";
import {
accessibleWorkspaceTabs,
resolveRoutedWorkspace,
scopedRequestBrainId,
switchWorkspacePath,
workspaceCacheKey,
workspacePath,
} from "./workspaceRoutes.ts";
const alpha = { slug: "alpha", brain_id: "alpha", archived: false };
const beta = { slug: "beta", brain_id: "beta", archived: false };
test("route resolves the exact workspace", () => {
assert.equal(resolveRoutedWorkspace([alpha, beta], "beta"), beta);
});
test("workspace switch preserves the active subpage", () => {
assert.equal(switchWorkspacePath("/w/alpha/graph", "beta"), "/w/beta/graph");
});
test("workspace switching is represented as navigation data, not reload", () => {
assert.equal(switchWorkspacePath("/w/alpha/tasks", "beta"), "/w/beta/tasks");
assert.equal(switchWorkspacePath.toString().includes("location.reload"), false);
});
test("system PAT sees multiple workspaces", () => {
assert.deepEqual(accessibleWorkspaceTabs([alpha, beta], true), [alpha, beta]);
});
test("per-brain PAT remains locked to its brain", () => {
assert.deepEqual(accessibleWorkspaceTabs([alpha, beta], false, "alpha"), [alpha]);
});
test("unknown route does not fall back to another workspace", () => {
assert.equal(resolveRoutedWorkspace([alpha, beta], "missing"), null);
});
test("created workspace has a canonical overview navigation target", () => {
assert.equal(workspacePath("new-space"), "/w/new-space/");
});
test("API request scope comes from the active workspace brain", () => {
assert.equal(scopedRequestBrainId(beta), "beta");
});
test("workspace cache keys differ across brains", () => {
assert.notEqual(workspaceCacheKey("graph", "alpha"), workspaceCacheKey("graph", "beta"));
});