mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 19:51:22 +00:00
perf(logging): split diagnostic session state module
This commit is contained in:
@@ -1,34 +1,34 @@
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import {
|
||||
getDiagnosticSessionStateCountForTest,
|
||||
logSessionStateChange,
|
||||
resetDiagnosticStateForTest,
|
||||
} from "./diagnostic.js";
|
||||
getDiagnosticSessionState,
|
||||
resetDiagnosticSessionStateForTest,
|
||||
} from "./diagnostic-session-state.js";
|
||||
|
||||
describe("diagnostic session state pruning", () => {
|
||||
beforeEach(() => {
|
||||
vi.useFakeTimers();
|
||||
resetDiagnosticStateForTest();
|
||||
resetDiagnosticSessionStateForTest();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
resetDiagnosticStateForTest();
|
||||
resetDiagnosticSessionStateForTest();
|
||||
vi.useRealTimers();
|
||||
});
|
||||
|
||||
it("evicts stale idle session states", () => {
|
||||
logSessionStateChange({ sessionId: "stale-1", state: "idle" });
|
||||
getDiagnosticSessionState({ sessionId: "stale-1" });
|
||||
expect(getDiagnosticSessionStateCountForTest()).toBe(1);
|
||||
|
||||
vi.advanceTimersByTime(31 * 60 * 1000);
|
||||
logSessionStateChange({ sessionId: "fresh-1", state: "idle" });
|
||||
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) {
|
||||
logSessionStateChange({ sessionId: `session-${i}`, state: "idle" });
|
||||
getDiagnosticSessionState({ sessionId: `session-${i}` });
|
||||
}
|
||||
|
||||
expect(getDiagnosticSessionStateCountForTest()).toBe(2000);
|
||||
|
||||
Reference in New Issue
Block a user