mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 15:14:31 +00:00
perf(test): fold acp session store assertions into mapper suite
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import { describe, expect, it, vi } from "vitest";
|
import { afterEach, describe, expect, it, vi } from "vitest";
|
||||||
import type { GatewayClient } from "../gateway/client.js";
|
import type { GatewayClient } from "../gateway/client.js";
|
||||||
import { parseSessionMeta, resolveSessionKey } from "./session-mapper.js";
|
import { parseSessionMeta, resolveSessionKey } from "./session-mapper.js";
|
||||||
|
import { createInMemorySessionStore } from "./session.js";
|
||||||
|
|
||||||
function createGateway(resolveLabelKey = "agent:main:label"): {
|
function createGateway(resolveLabelKey = "agent:main:label"): {
|
||||||
gateway: GatewayClient;
|
gateway: GatewayClient;
|
||||||
@@ -54,3 +55,26 @@ describe("acp session mapper", () => {
|
|||||||
expect(request).not.toHaveBeenCalled();
|
expect(request).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("acp session manager", () => {
|
||||||
|
const store = createInMemorySessionStore();
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
store.clearAllSessionsForTest();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("tracks active runs and clears on cancel", () => {
|
||||||
|
const session = store.createSession({
|
||||||
|
sessionKey: "acp:test",
|
||||||
|
cwd: "/tmp",
|
||||||
|
});
|
||||||
|
const controller = new AbortController();
|
||||||
|
store.setActiveRun(session.sessionId, "run-1", controller);
|
||||||
|
|
||||||
|
expect(store.getSessionByRunId("run-1")?.sessionId).toBe(session.sessionId);
|
||||||
|
|
||||||
|
const cancelled = store.cancelActiveRun(session.sessionId);
|
||||||
|
expect(cancelled).toBe(true);
|
||||||
|
expect(store.getSessionByRunId("run-1")).toBeUndefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
import { describe, expect, it, afterEach } from "vitest";
|
|
||||||
import { createInMemorySessionStore } from "./session.js";
|
|
||||||
|
|
||||||
describe("acp session manager", () => {
|
|
||||||
const store = createInMemorySessionStore();
|
|
||||||
|
|
||||||
afterEach(() => {
|
|
||||||
store.clearAllSessionsForTest();
|
|
||||||
});
|
|
||||||
|
|
||||||
it("tracks active runs and clears on cancel", () => {
|
|
||||||
const session = store.createSession({
|
|
||||||
sessionKey: "acp:test",
|
|
||||||
cwd: "/tmp",
|
|
||||||
});
|
|
||||||
const controller = new AbortController();
|
|
||||||
store.setActiveRun(session.sessionId, "run-1", controller);
|
|
||||||
|
|
||||||
expect(store.getSessionByRunId("run-1")?.sessionId).toBe(session.sessionId);
|
|
||||||
|
|
||||||
const cancelled = store.cancelActiveRun(session.sessionId);
|
|
||||||
expect(cancelled).toBe(true);
|
|
||||||
expect(store.getSessionByRunId("run-1")).toBeUndefined();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
Reference in New Issue
Block a user