openclaw/extensions/telegram/src/pairing-text.test.ts

56 lines
1.4 KiB
TypeScript

import type { OpenClawConfig } from "openclaw/plugin-sdk/config-runtime";
import { describe, expect, it, vi } from "vitest";
import { telegramPairingText } from "./pairing-text.js";
import { clearTelegramRuntime, setTelegramRuntime } from "./runtime.js";
function createCfg(): OpenClawConfig {
return {
channels: {
telegram: {
enabled: true,
accounts: {
ops: { botToken: "token-ops" },
},
},
},
} as OpenClawConfig;
}
describe("telegramPairingText", () => {
it("preserves accountId for pairing approval sends", async () => {
const sendMessageTelegram = vi.fn(async () => ({ messageId: "tg-pair", chatId: "12345" }));
const resolveTelegramToken = vi.fn(async () => ({ token: "token-ops", source: "config" }));
setTelegramRuntime({
channel: {
telegram: {
sendMessageTelegram,
resolveTelegramToken,
},
},
logging: {
shouldLogVerbose: () => false,
},
} as never);
await telegramPairingText.notify({
cfg: createCfg(),
id: "12345",
message: "approved",
accountId: "ops",
});
expect(resolveTelegramToken).toHaveBeenCalledWith(createCfg(), {
accountId: "ops",
});
expect(sendMessageTelegram).toHaveBeenCalledWith(
"12345",
"approved",
expect.objectContaining({
token: "token-ops",
accountId: "ops",
}),
);
clearTelegramRuntime();
});
});