diff --git a/extensions/telegram/src/bot-native-commands.test.ts b/extensions/telegram/src/bot-native-commands.test.ts index 62218557969..5a5b64a8260 100644 --- a/extensions/telegram/src/bot-native-commands.test.ts +++ b/extensions/telegram/src/bot-native-commands.test.ts @@ -12,6 +12,7 @@ import { resetNativeCommandMenuMocks, waitForRegisteredCommands, } from "./bot-native-commands.menu-test-support.js"; +import { resetTelegramForumFlagCacheForTest } from "./bot/helpers.js"; import { TELEGRAM_COMMAND_NAME_PATTERN } from "./command-config.js"; import { pluginCommandMocks, resetPluginCommandMocks } from "./test-support/plugin-command.js"; @@ -101,6 +102,7 @@ describe("registerTelegramNativeCommands", () => { }); beforeEach(() => { + resetTelegramForumFlagCacheForTest(); resetNativeCommandMenuMocks(); resetPluginCommandMocks(); }); diff --git a/extensions/telegram/src/bot.create-telegram-bot.test.ts b/extensions/telegram/src/bot.create-telegram-bot.test.ts index 5ae87c83074..fceb0da8546 100644 --- a/extensions/telegram/src/bot.create-telegram-bot.test.ts +++ b/extensions/telegram/src/bot.create-telegram-bot.test.ts @@ -46,6 +46,7 @@ const { getTelegramSequentialKey, setTelegramBotRuntimeForTest, } = await import("./bot.js"); +const { resetTelegramForumFlagCacheForTest } = await import("./bot/helpers.js"); let createTelegramBot: ( opts: Parameters[0], ) => ReturnType; @@ -131,6 +132,7 @@ describe("createTelegramBot", () => { process.env.TZ = ORIGINAL_TZ; }); beforeEach(() => { + resetTelegramForumFlagCacheForTest(); setTelegramBotRuntimeForTest( telegramBotRuntimeForTest as unknown as Parameters[0], ); diff --git a/extensions/telegram/src/bot/helpers.test.ts b/extensions/telegram/src/bot/helpers.test.ts index 12d0550fcb7..d950f0977fc 100644 --- a/extensions/telegram/src/bot/helpers.test.ts +++ b/extensions/telegram/src/bot/helpers.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it, vi } from "vitest"; +import { beforeEach, describe, expect, it, vi } from "vitest"; import { buildTelegramRoutingTarget, buildTelegramThreadParams, @@ -12,6 +12,7 @@ import { resolveTelegramDirectPeerId, resolveTelegramForumFlag, resolveTelegramForumThreadId, + resetTelegramForumFlagCacheForTest, } from "./helpers.js"; describe("resolveTelegramForumThreadId", () => { @@ -34,6 +35,10 @@ describe("resolveTelegramForumThreadId", () => { }); describe("resolveTelegramForumFlag", () => { + beforeEach(() => { + resetTelegramForumFlagCacheForTest(); + }); + it("keeps explicit forum metadata when Telegram already provides it", async () => { const getChat = vi.fn(async () => ({ is_forum: false })); await expect( diff --git a/extensions/telegram/src/bot/helpers.ts b/extensions/telegram/src/bot/helpers.ts index 89ddbff4518..0a26488c7ea 100644 --- a/extensions/telegram/src/bot/helpers.ts +++ b/extensions/telegram/src/bot/helpers.ts @@ -44,6 +44,10 @@ const TELEGRAM_FORUM_FLAG_CACHE_MAX_CHATS = 1024; const TELEGRAM_FORUM_FLAG_CACHE_TTL_MS = 10 * 60_000; const telegramForumFlagByChatId = new Map(); +export function resetTelegramForumFlagCacheForTest(): void { + telegramForumFlagByChatId.clear(); +} + function cacheTelegramForumFlag(chatId: string | number, isForum: boolean, nowMs = Date.now()) { const cacheKey = String(chatId); if (