Files
openclaw/src/logging/diagnostic.test.ts
2026-02-15 05:14:46 +00:00

37 lines
1.0 KiB
TypeScript

import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
import {
getDiagnosticSessionStateCountForTest,
getDiagnosticSessionState,
resetDiagnosticSessionStateForTest,
} from "./diagnostic-session-state.js";
describe("diagnostic session state pruning", () => {
beforeEach(() => {
vi.useFakeTimers();
resetDiagnosticSessionStateForTest();
});
afterEach(() => {
resetDiagnosticSessionStateForTest();
vi.useRealTimers();
});
it("evicts stale idle session states", () => {
getDiagnosticSessionState({ sessionId: "stale-1" });
expect(getDiagnosticSessionStateCountForTest()).toBe(1);
vi.advanceTimersByTime(31 * 60 * 1000);
getDiagnosticSessionState({ sessionId: "fresh-1" });
expect(getDiagnosticSessionStateCountForTest()).toBe(1);
});
it("caps tracked session states to a bounded max", () => {
for (let i = 0; i < 2001; i += 1) {
getDiagnosticSessionState({ sessionId: `session-${i}` });
}
expect(getDiagnosticSessionStateCountForTest()).toBe(2000);
});
});