fix(telegram): normalize chat ids and improve errors

This commit is contained in:
Peter Steinberger
2025-12-20 14:21:49 +00:00
parent a88e5968ae
commit 6ca897e055
4 changed files with 92 additions and 12 deletions

View File

@@ -32,4 +32,39 @@ describe("sendMessageTelegram", () => {
expect(res.chatId).toBe(chatId);
expect(res.messageId).toBe("42");
});
it("normalizes chat ids with internal prefixes", async () => {
const sendMessage = vi.fn().mockResolvedValue({
message_id: 1,
chat: { id: "123" },
});
const api = { sendMessage } as unknown as {
sendMessage: typeof sendMessage;
};
await sendMessageTelegram("telegram:123", "hi", {
token: "tok",
api,
});
expect(sendMessage).toHaveBeenCalledWith("123", "hi", {
parse_mode: "Markdown",
});
});
it("wraps chat-not-found with actionable context", async () => {
const chatId = "123";
const err = new Error("400: Bad Request: chat not found");
const sendMessage = vi.fn().mockRejectedValue(err);
const api = { sendMessage } as unknown as {
sendMessage: typeof sendMessage;
};
await expect(
sendMessageTelegram(chatId, "hi", { token: "tok", api }),
).rejects.toThrow(/chat not found/i);
await expect(
sendMessageTelegram(chatId, "hi", { token: "tok", api }),
).rejects.toThrow(/chat_id=123/);
});
});