Fix Telegram poll action wiring

This commit is contained in:
Krish
2026-02-16 19:54:49 +05:30
committed by Peter Steinberger
parent afd354c482
commit 556b531a14
5 changed files with 168 additions and 0 deletions

View File

@@ -11,6 +11,11 @@ const sendStickerTelegram = vi.fn(async () => ({
messageId: "456",
chatId: "123",
}));
const sendPollTelegram = vi.fn(async () => ({
messageId: "999",
chatId: "123",
pollId: "poll-1",
}));
const deleteMessageTelegram = vi.fn(async () => ({ ok: true }));
const originalToken = process.env.TELEGRAM_BOT_TOKEN;
@@ -18,6 +23,7 @@ vi.mock("../../telegram/send.js", () => ({
reactMessageTelegram: (...args: unknown[]) => reactMessageTelegram(...args),
sendMessageTelegram: (...args: unknown[]) => sendMessageTelegram(...args),
sendStickerTelegram: (...args: unknown[]) => sendStickerTelegram(...args),
sendPollTelegram: (...args: unknown[]) => sendPollTelegram(...args),
deleteMessageTelegram: (...args: unknown[]) => deleteMessageTelegram(...args),
}));
@@ -49,6 +55,7 @@ describe("handleTelegramAction", () => {
reactMessageTelegram.mockClear();
sendMessageTelegram.mockClear();
sendStickerTelegram.mockClear();
sendPollTelegram.mockClear();
deleteMessageTelegram.mockClear();
process.env.TELEGRAM_BOT_TOKEN = "tok";
});
@@ -362,6 +369,30 @@ describe("handleTelegramAction", () => {
);
});
it("sends a poll", async () => {
const cfg = {
channels: { telegram: { botToken: "tok" } },
} as OpenClawConfig;
await handleTelegramAction(
{
action: "poll",
to: "123",
question: "Ready?",
options: ["Yes", "No"],
},
cfg,
);
expect(sendPollTelegram).toHaveBeenCalledWith(
"123",
expect.objectContaining({
question: "Ready?",
options: ["Yes", "No"],
maxSelections: 1,
}),
expect.objectContaining({ token: "tok" }),
);
});
it("respects deleteMessage gating", async () => {
const cfg = {
channels: {