openskynet / src /acp /runtime /session-meta.test.ts
Darochin's picture
Mirror OpenSkyNet workspace snapshot from Git HEAD
fc93158 verified
import { beforeEach, describe, expect, it, vi } from "vitest";
import type { OpenClawConfig } from "../../config/config.js";
const hoisted = vi.hoisted(() => {
const resolveAllAgentSessionStoreTargetsMock = vi.fn();
const loadSessionStoreMock = vi.fn();
return {
resolveAllAgentSessionStoreTargetsMock,
loadSessionStoreMock,
};
});
vi.mock("../../config/sessions.js", async () => {
const actual = await vi.importActual<typeof import("../../config/sessions.js")>(
"../../config/sessions.js",
);
return {
...actual,
resolveAllAgentSessionStoreTargets: (cfg: OpenClawConfig, opts: unknown) =>
hoisted.resolveAllAgentSessionStoreTargetsMock(cfg, opts),
loadSessionStore: (storePath: string) => hoisted.loadSessionStoreMock(storePath),
};
});
const { listAcpSessionEntries } = await import("./session-meta.js");
describe("listAcpSessionEntries", () => {
beforeEach(() => {
vi.clearAllMocks();
});
it("reads ACP sessions from resolved configured store targets", async () => {
const cfg = {
session: {
store: "/custom/sessions/{agentId}.json",
},
} as OpenClawConfig;
hoisted.resolveAllAgentSessionStoreTargetsMock.mockResolvedValue([
{
agentId: "ops",
storePath: "/custom/sessions/ops.json",
},
]);
hoisted.loadSessionStoreMock.mockReturnValue({
"agent:ops:acp:s1": {
updatedAt: 123,
acp: {
backend: "acpx",
agent: "ops",
mode: "persistent",
state: "idle",
},
},
});
const entries = await listAcpSessionEntries({ cfg });
expect(hoisted.resolveAllAgentSessionStoreTargetsMock).toHaveBeenCalledWith(cfg, undefined);
expect(hoisted.loadSessionStoreMock).toHaveBeenCalledWith("/custom/sessions/ops.json");
expect(entries).toEqual([
expect.objectContaining({
cfg,
storePath: "/custom/sessions/ops.json",
sessionKey: "agent:ops:acp:s1",
storeSessionKey: "agent:ops:acp:s1",
}),
]);
});
});