Files
xingyue dbb7885ffd
CI / check (pull_request) Failing after 1m39s
chore: fix biome check errors (40 → 0)
- Auto-fix: import sorting, formatting (17 files)
- Unsafe auto-fix: unused vars, template literals (7 files)
- Manual: nursery/noConsole → suspicious/noConsole suppression
- Manual: suppress noExcessiveCognitiveComplexity for cmdThreadResume and parseWorkflowPayload
- Manual: remove unused destructured vars in current-role tests

Closes #48
2026-06-04 16:45:45 +08:00

50 lines
1.7 KiB
TypeScript

import { mkdtemp, rm } from "node:fs/promises";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { createMemoryStore } from "@ocas/core";
import { afterEach, beforeEach, describe, expect, test } from "vitest";
import { storeBuiltinDetail } from "../src/detail.js";
import { appendSessionTurn, initSessionDir } from "../src/session.js";
import type { BuiltinTurnPayload } from "../src/types.js";
describe("storeBuiltinDetail", () => {
let storageRoot: string;
beforeEach(async () => {
storageRoot = await mkdtemp(join(tmpdir(), "builtin-detail-storage-"));
});
afterEach(async () => {
await rm(storageRoot, { recursive: true, force: true });
});
const makeTurn = (role: "assistant" | "tool", content: string): BuiltinTurnPayload => ({
role,
content,
toolCalls: null,
reasoning: null,
});
test("stores detail with turns, returns hash and turnCount", async () => {
const store = createMemoryStore();
await initSessionDir(storageRoot);
const sid = "detail-test";
await appendSessionTurn(storageRoot, sid, makeTurn("tool", "question"));
await appendSessionTurn(storageRoot, sid, makeTurn("assistant", "answer"));
const result = await storeBuiltinDetail(store, storageRoot, sid, "test-model", 1000, 2000);
expect(result.turnCount).toBe(2);
expect(typeof result.detailHash).toBe("string");
expect(result.detailHash.length).toBeGreaterThan(0);
});
test("empty session returns turnCount 0", async () => {
const store = createMemoryStore();
const sid = "empty-session";
const result = await storeBuiltinDetail(store, storageRoot, sid, "test-model", 1000, 2000);
expect(result.turnCount).toBe(0);
expect(typeof result.detailHash).toBe("string");
});
});