Files
openclaw/src/auto-reply/reply/agent-runner-cli-dispatch.test.ts
2026-05-30 18:53:59 +05:30

53 lines
1.7 KiB
TypeScript

import { describe, expect, it, vi } from "vitest";
import type { EmbeddedAgentRunResult } from "../../agents/embedded-agent-runner/types.js";
import { keepCliSessionBindingOnlyWhenReused } from "./agent-runner-cli-dispatch.js";
describe("keepCliSessionBindingOnlyWhenReused", () => {
it("keeps the first room-event CLI binding when no binding exists yet", () => {
const result = {
payloads: [],
meta: {
durationMs: 1,
agentMeta: {
sessionId: "new-cli-session",
provider: "claude-cli",
model: "claude-opus-4-8",
cliSessionBinding: {
sessionId: "new-cli-session",
authProfileId: "profile",
},
},
},
} satisfies EmbeddedAgentRunResult;
expect(keepCliSessionBindingOnlyWhenReused({ result })).toBe(result);
});
it("drops a replacement room-event CLI binding when an existing binding was reused", () => {
const onDroppedReplacement = vi.fn();
const result = keepCliSessionBindingOnlyWhenReused({
existingSessionId: "existing-cli-session",
onDroppedReplacement,
result: {
payloads: [],
meta: {
durationMs: 1,
agentMeta: {
sessionId: "replacement-cli-session",
provider: "claude-cli",
model: "claude-opus-4-8",
cliSessionBinding: {
sessionId: "replacement-cli-session",
authProfileId: "profile",
},
},
},
} satisfies EmbeddedAgentRunResult,
});
expect(onDroppedReplacement).toHaveBeenCalledOnce();
expect(result.meta.agentMeta?.sessionId).toBe("");
expect(result.meta.agentMeta?.cliSessionBinding).toBeUndefined();
});
});