test: optimize hot-path test runtime

This commit is contained in:
Peter Steinberger
2026-02-16 03:49:01 +00:00
parent 9b2e1769c5
commit 31939397a9
3 changed files with 35 additions and 42 deletions

View File

@@ -8,6 +8,29 @@ type TranscriptLine = {
message?: Record<string, unknown>;
};
const sessionEntryState = vi.hoisted(() => ({
transcriptPath: "",
sessionId: "",
}));
vi.mock("../session-utils.js", async (importOriginal) => {
const original = await importOriginal<typeof import("../session-utils.js")>();
return {
...original,
loadSessionEntry: () => ({
cfg: {},
storePath: path.join(path.dirname(sessionEntryState.transcriptPath), "sessions.json"),
entry: {
sessionId: sessionEntryState.sessionId,
sessionFile: sessionEntryState.transcriptPath,
},
canonicalKey: "main",
}),
};
});
const { chatHandlers } = await import("./chat.js");
function createActiveRun(sessionKey: string, sessionId: string) {
const now = Date.now();
return {
@@ -44,29 +67,13 @@ async function readTranscriptLines(transcriptPath: string): Promise<TranscriptLi
});
}
async function importChatHandlersWithSession(transcriptPath: string, sessionId: string) {
vi.resetModules();
vi.doMock("../session-utils.js", async (importOriginal) => {
const original = await importOriginal();
return {
...original,
loadSessionEntry: () => ({
cfg: {},
storePath: path.join(path.dirname(transcriptPath), "sessions.json"),
entry: {
sessionId,
sessionFile: transcriptPath,
},
canonicalKey: "main",
}),
};
});
return import("./chat.js");
function setMockSessionEntry(transcriptPath: string, sessionId: string) {
sessionEntryState.transcriptPath = transcriptPath;
sessionEntryState.sessionId = sessionId;
}
afterEach(() => {
vi.restoreAllMocks();
vi.resetModules();
});
describe("chat abort transcript persistence", () => {
@@ -77,7 +84,7 @@ describe("chat abort transcript persistence", () => {
const runId = "idem-abort-run-1";
await writeTranscriptHeader(transcriptPath, sessionId);
const { chatHandlers } = await importChatHandlersWithSession(transcriptPath, sessionId);
setMockSessionEntry(transcriptPath, sessionId);
const respond = vi.fn();
const context = {
chatAbortControllers: new Map([[runId, createActiveRun("main", sessionId)]]),
@@ -142,7 +149,7 @@ describe("chat abort transcript persistence", () => {
const sessionId = "sess-main";
await writeTranscriptHeader(transcriptPath, sessionId);
const { chatHandlers } = await importChatHandlersWithSession(transcriptPath, sessionId);
setMockSessionEntry(transcriptPath, sessionId);
const respond = vi.fn();
const context = {
chatAbortControllers: new Map([
@@ -203,7 +210,7 @@ describe("chat abort transcript persistence", () => {
const sessionId = "sess-main";
await writeTranscriptHeader(transcriptPath, sessionId);
const { chatHandlers } = await importChatHandlersWithSession(transcriptPath, sessionId);
setMockSessionEntry(transcriptPath, sessionId);
const respond = vi.fn();
const context = {
chatAbortControllers: new Map([["run-stop-1", createActiveRun("main", sessionId)]]),