Spaces:
Build error
Build error
| import fs from "node:fs"; | |
| import os from "node:os"; | |
| import path from "node:path"; | |
| import { describe, expect, it } from "vitest"; | |
| import { | |
| defaultClientContext, | |
| readContext, | |
| setCurrentProfile, | |
| upsertProfile, | |
| writeContext, | |
| } from "../client/context.js"; | |
| function createTempContextPath(): string { | |
| const dir = fs.mkdtempSync(path.join(os.tmpdir(), "paperclip-cli-context-")); | |
| return path.join(dir, "context.json"); | |
| } | |
| describe("client context store", () => { | |
| it("returns default context when file does not exist", () => { | |
| const contextPath = createTempContextPath(); | |
| const context = readContext(contextPath); | |
| expect(context).toEqual(defaultClientContext()); | |
| }); | |
| it("upserts profile values and switches current profile", () => { | |
| const contextPath = createTempContextPath(); | |
| upsertProfile( | |
| "work", | |
| { | |
| apiBase: "http://localhost:3100", | |
| companyId: "company-123", | |
| apiKeyEnvVarName: "PAPERCLIP_AGENT_TOKEN", | |
| }, | |
| contextPath, | |
| ); | |
| setCurrentProfile("work", contextPath); | |
| const context = readContext(contextPath); | |
| expect(context.currentProfile).toBe("work"); | |
| expect(context.profiles.work).toEqual({ | |
| apiBase: "http://localhost:3100", | |
| companyId: "company-123", | |
| apiKeyEnvVarName: "PAPERCLIP_AGENT_TOKEN", | |
| }); | |
| }); | |
| it("normalizes invalid file content to safe defaults", () => { | |
| const contextPath = createTempContextPath(); | |
| writeContext( | |
| { | |
| version: 1, | |
| currentProfile: "x", | |
| profiles: { | |
| x: { | |
| apiBase: " ", | |
| companyId: " ", | |
| apiKeyEnvVarName: " ", | |
| }, | |
| }, | |
| }, | |
| contextPath, | |
| ); | |
| const context = readContext(contextPath); | |
| expect(context.currentProfile).toBe("x"); | |
| expect(context.profiles.x).toEqual({}); | |
| }); | |
| }); | |