Spaces:
Paused
Paused
| import fs from "node:fs"; | |
| import os from "node:os"; | |
| import path from "node:path"; | |
| import { describe, expect, it } from "vitest"; | |
| import { | |
| getStoredBoardCredential, | |
| readBoardAuthStore, | |
| removeStoredBoardCredential, | |
| setStoredBoardCredential, | |
| } from "../client/board-auth.js"; | |
| function createTempAuthPath(): string { | |
| const dir = fs.mkdtempSync(path.join(os.tmpdir(), "paperclip-cli-auth-")); | |
| return path.join(dir, "auth.json"); | |
| } | |
| describe("board auth store", () => { | |
| it("returns an empty store when the file does not exist", () => { | |
| const authPath = createTempAuthPath(); | |
| expect(readBoardAuthStore(authPath)).toEqual({ | |
| version: 1, | |
| credentials: {}, | |
| }); | |
| }); | |
| it("stores and retrieves credentials by normalized api base", () => { | |
| const authPath = createTempAuthPath(); | |
| setStoredBoardCredential({ | |
| apiBase: "http://localhost:3100/", | |
| token: "token-123", | |
| userId: "user-1", | |
| storePath: authPath, | |
| }); | |
| expect(getStoredBoardCredential("http://localhost:3100", authPath)).toMatchObject({ | |
| apiBase: "http://localhost:3100", | |
| token: "token-123", | |
| userId: "user-1", | |
| }); | |
| }); | |
| it("removes stored credentials", () => { | |
| const authPath = createTempAuthPath(); | |
| setStoredBoardCredential({ | |
| apiBase: "http://localhost:3100", | |
| token: "token-123", | |
| storePath: authPath, | |
| }); | |
| expect(removeStoredBoardCredential("http://localhost:3100", authPath)).toBe(true); | |
| expect(getStoredBoardCredential("http://localhost:3100", authPath)).toBeNull(); | |
| }); | |
| }); | |