Files
TJWaterAgent/tests/sessions/runtimeContextStore.test.ts
T

42 lines
1.3 KiB
TypeScript

import { afterEach, beforeEach, describe, expect, it } from "bun:test";
import { mkdtemp, rm } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { SessionRuntimeContextStore } from "../../src/sessions/runtimeContextStore.js";
describe("SessionRuntimeContextStore", () => {
let tempDir: string;
let store: SessionRuntimeContextStore;
beforeEach(async () => {
tempDir = await mkdtemp(join(tmpdir(), "tjwater-tool-context-"));
store = new SessionRuntimeContextStore(tempDir);
await store.initialize();
});
afterEach(async () => {
await rm(tempDir, { force: true, recursive: true });
});
it("writes and reads runtime session context by opencode session id", async () => {
await store.write({
accessToken: "token-1",
actorKey: "actor-1",
allowLearningWrite: true,
clientSessionId: "chat-session-1",
learningMode: "interactive",
projectId: "project-id-1",
projectKey: "project-1",
sessionId: "runtime-session-1",
traceId: "trace-1",
});
const runtimeContext = await store.read("runtime-session-1");
expect(runtimeContext?.accessToken).toBe("token-1");
expect(runtimeContext?.clientSessionId).toBe("chat-session-1");
expect(runtimeContext?.sessionId).toBe("runtime-session-1");
});
});