mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 10:31:24 +00:00
test: optimize hot-path test runtime
This commit is contained in:
@@ -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)]]),
|
||||
|
||||
Reference in New Issue
Block a user