evOo-local/packages/adapters/src/computer-support.test.ts
cynarAI 6c7eed7580 Initial clean evOo-local from f00577b
Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline
(Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/*
packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
2026-09-20 17:15:16 +02:00

56 lines
2.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
displayBotWorkspacePath,
resolveBotWorkspaceCwd,
resolveBotWorkspacePath,
teamBotWorkspaceDirectory,
} from "./computer-support.js";
describe("Team Computer bot folders", () => {
it("uses the bot folder for relative paths and cwd", () => {
expect(teamBotWorkspaceDirectory("bot-1")).toBe("bots/bot-1");
expect(resolveBotWorkspacePath("team", "bot-1", "notes/result.txt")).toBe(
"bots/bot-1/notes/result.txt",
);
expect(resolveBotWorkspacePath("team", "bot-1", "")).toBe("bots/bot-1");
expect(resolveBotWorkspaceCwd("team", "bot-1", undefined)).toBe("bots/bot-1");
expect(resolveBotWorkspaceCwd("team", "bot-1", "projects/site")).toBe(
"bots/bot-1/projects/site",
);
expect(resolveBotWorkspaceCwd("team", "bot-1", "/Users/me/project")).toBe("/Users/me/project");
});
it("keeps shared, bot-root, and absolute paths at the Team root", () => {
expect(resolveBotWorkspacePath("team", "bot-1", "shared/brief.md")).toBe("shared/brief.md");
expect(resolveBotWorkspacePath("team", "bot-1", "bots/bot-2/result.md")).toBe(
"bots/bot-2/result.md",
);
expect(resolveBotWorkspacePath("team", "bot-1", "/root-note.md")).toBe("root-note.md");
expect(resolveBotWorkspacePath("team", "bot-1", "/shared/brief.md")).toBe("shared/brief.md");
});
it("presents the current bot folder as its home without hiding Team paths", () => {
expect(displayBotWorkspacePath("team", "bot-1", "notes", "bots/bot-1/notes/result.txt")).toBe(
"notes/result.txt",
);
expect(displayBotWorkspacePath("team", "bot-1", "shared", "shared/brief.md")).toBe(
"shared/brief.md",
);
expect(displayBotWorkspacePath("team", "bot-1", "bots", "bots/bot-1")).toBe("bots/bot-1");
expect(displayBotWorkspacePath("team", "bot-1", "/", "bots/bot-1")).toBe("bots/bot-1");
expect(
displayBotWorkspacePath("team", "bot-1", "bots/bot-1", "bots/bot-1/notes/result.txt"),
).toBe("bots/bot-1/notes/result.txt");
});
it("leaves Private Computer paths unchanged", () => {
expect(resolveBotWorkspacePath("dedicated", "bot-1", "notes/result.txt")).toBe(
"notes/result.txt",
);
expect(resolveBotWorkspaceCwd("dedicated", "bot-1", undefined)).toBeUndefined();
expect(displayBotWorkspacePath("dedicated", "bot-1", "notes", "notes/result.txt")).toBe(
"notes/result.txt",
);
});
});