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", ); }); });