36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
|
|
import { sendMessageTelegram } from "./send.js";
|
|
|
|
describe("sendMessageTelegram", () => {
|
|
it("falls back to plain text when Telegram rejects Markdown", async () => {
|
|
const chatId = "123";
|
|
const parseErr = new Error(
|
|
"400: Bad Request: can't parse entities: Can't find end of the entity starting at byte offset 9",
|
|
);
|
|
const sendMessage = vi
|
|
.fn()
|
|
.mockRejectedValueOnce(parseErr)
|
|
.mockResolvedValueOnce({
|
|
message_id: 42,
|
|
chat: { id: chatId },
|
|
});
|
|
const api = { sendMessage } as unknown as {
|
|
sendMessage: typeof sendMessage;
|
|
};
|
|
|
|
const res = await sendMessageTelegram(chatId, "_oops_", {
|
|
token: "tok",
|
|
api,
|
|
verbose: true,
|
|
});
|
|
|
|
expect(sendMessage).toHaveBeenNthCalledWith(1, chatId, "_oops_", {
|
|
parse_mode: "Markdown",
|
|
});
|
|
expect(sendMessage).toHaveBeenNthCalledWith(2, chatId, "_oops_");
|
|
expect(res.chatId).toBe(chatId);
|
|
expect(res.messageId).toBe("42");
|
|
});
|
|
});
|