mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-06 03:12:55 +00:00
53 lines
1.7 KiB
TypeScript
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();
|
|
});
|
|
});
|