mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-09 10:10:44 +00:00
Merged via squash.
Prepared head SHA: 9aa5303b48
Co-authored-by: mariosousa-finn <244526439+mariosousa-finn@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
70 lines
2.5 KiB
TypeScript
70 lines
2.5 KiB
TypeScript
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
import type { CallGatewayOptions } from "../../gateway/call.js";
|
|
import { setActivePluginRegistry } from "../../plugins/runtime.js";
|
|
import { createSessionConversationTestRegistry } from "../../test-utils/session-conversation-registry.js";
|
|
import { runSessionsSendA2AFlow, __testing } from "./sessions-send-tool.a2a.js";
|
|
|
|
vi.mock("../run-wait.js", () => ({
|
|
waitForAgentRun: vi.fn().mockResolvedValue({ status: "ok" }),
|
|
readLatestAssistantReply: vi.fn().mockResolvedValue("Test announce reply"),
|
|
}));
|
|
|
|
vi.mock("./agent-step.js", () => ({
|
|
runAgentStep: vi.fn().mockResolvedValue("Test announce reply"),
|
|
}));
|
|
|
|
describe("runSessionsSendA2AFlow announce delivery", () => {
|
|
let gatewayCalls: CallGatewayOptions[];
|
|
|
|
beforeEach(() => {
|
|
setActivePluginRegistry(createSessionConversationTestRegistry());
|
|
gatewayCalls = [];
|
|
__testing.setDepsForTest({
|
|
callGateway: async <T = Record<string, unknown>>(opts: CallGatewayOptions) => {
|
|
gatewayCalls.push(opts);
|
|
return {} as T;
|
|
},
|
|
});
|
|
});
|
|
|
|
afterEach(() => {
|
|
__testing.setDepsForTest();
|
|
vi.restoreAllMocks();
|
|
});
|
|
|
|
it("passes threadId through to gateway send for Telegram forum topics", async () => {
|
|
await runSessionsSendA2AFlow({
|
|
targetSessionKey: "agent:main:telegram:group:-100123:topic:554",
|
|
displayKey: "agent:main:telegram:group:-100123:topic:554",
|
|
message: "Test message",
|
|
announceTimeoutMs: 10_000,
|
|
maxPingPongTurns: 0,
|
|
roundOneReply: "Worker completed successfully",
|
|
});
|
|
|
|
const sendCall = gatewayCalls.find((call) => call.method === "send");
|
|
expect(sendCall).toBeDefined();
|
|
const sendParams = sendCall?.params as Record<string, unknown>;
|
|
expect(sendParams.to).toBe("-100123");
|
|
expect(sendParams.channel).toBe("telegram");
|
|
expect(sendParams.threadId).toBe("554");
|
|
});
|
|
|
|
it("omits threadId for non-topic sessions", async () => {
|
|
await runSessionsSendA2AFlow({
|
|
targetSessionKey: "agent:main:discord:group:dev",
|
|
displayKey: "agent:main:discord:group:dev",
|
|
message: "Test message",
|
|
announceTimeoutMs: 10_000,
|
|
maxPingPongTurns: 0,
|
|
roundOneReply: "Worker completed successfully",
|
|
});
|
|
|
|
const sendCall = gatewayCalls.find((call) => call.method === "send");
|
|
expect(sendCall).toBeDefined();
|
|
const sendParams = sendCall?.params as Record<string, unknown>;
|
|
expect(sendParams.channel).toBe("discord");
|
|
expect(sendParams.threadId).toBeUndefined();
|
|
});
|
|
});
|