Default Telegram polls to public

This commit is contained in:
Krish
2026-02-16 20:27:26 +05:30
committed by Peter Steinberger
parent 556b531a14
commit c43e95e011
2 changed files with 32 additions and 2 deletions

View File

@@ -1293,6 +1293,36 @@ describe("sendPollTelegram", () => {
expect(api.sendPoll.mock.calls[0]?.[3]).toMatchObject({ open_period: 60 });
});
it("defaults polls to public (is_anonymous=false)", async () => {
const api = {
sendPoll: vi.fn(async () => ({ message_id: 123, chat: { id: 555 }, poll: { id: "p1" } })),
};
await sendPollTelegram(
"123",
{ question: "Q", options: ["A", "B"] },
{ token: "t", api: api as unknown as Bot["api"] },
);
expect(api.sendPoll).toHaveBeenCalledTimes(1);
expect(api.sendPoll.mock.calls[0]?.[3]).toMatchObject({ is_anonymous: false });
});
it("supports explicit anonymous polls", async () => {
const api = {
sendPoll: vi.fn(async () => ({ message_id: 123, chat: { id: 555 }, poll: { id: "p1" } })),
};
await sendPollTelegram(
"123",
{ question: "Q", options: ["A", "B"] },
{ token: "t", api: api as unknown as Bot["api"], isAnonymous: true },
);
expect(api.sendPoll).toHaveBeenCalledTimes(1);
expect(api.sendPoll.mock.calls[0]?.[3]).toMatchObject({ is_anonymous: true });
});
it("retries without message_thread_id on thread-not-found", async () => {
const api = {
sendPoll: vi.fn(

View File

@@ -974,7 +974,7 @@ type TelegramPollOpts = {
messageThreadId?: number;
/** Send message silently (no notification). Defaults to false. */
silent?: boolean;
/** Whether votes are anonymous. Defaults to true (Telegram default). */
/** Whether votes are anonymous. Defaults to false (public poll). */
isAnonymous?: boolean;
};
@@ -1032,7 +1032,7 @@ export async function sendPollTelegram(
// sendPoll(chat_id, question, options, other?, signal?)
const pollParams = {
allows_multiple_answers: normalizedPoll.maxSelections > 1,
is_anonymous: opts.isAnonymous ?? true,
is_anonymous: opts.isAnonymous ?? false,
...(durationSeconds !== undefined ? { open_period: durationSeconds } : {}),
...(Object.keys(threadParams).length > 0 ? threadParams : {}),
...(opts.silent === true ? { disable_notification: true } : {}),