From 21a024e4f8d4eb3db85b7030d7be693b18de0537 Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Thu, 12 Mar 2026 01:27:11 -0400 Subject: [PATCH] Tests: cover shared Telegram sent message cache --- src/telegram/send.test.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/telegram/send.test.ts b/src/telegram/send.test.ts index 2bd6556ee42..f2875af1dc0 100644 --- a/src/telegram/send.test.ts +++ b/src/telegram/send.test.ts @@ -1,5 +1,6 @@ import type { Bot } from "grammy"; import { afterEach, describe, expect, it, vi } from "vitest"; +import { importFreshModule } from "../../test/helpers/import-fresh.js"; import { getTelegramSendTestMocks, importTelegramSendModule, @@ -88,6 +89,29 @@ describe("sent-message-cache", () => { clearSentMessageCache(); expect(wasSentByBot(123, 1)).toBe(false); }); + + it("shares sent-message state across distinct module instances", async () => { + const cacheA = await importFreshModule( + import.meta.url, + "./sent-message-cache.js?scope=shared-a", + ); + const cacheB = await importFreshModule( + import.meta.url, + "./sent-message-cache.js?scope=shared-b", + ); + + cacheA.clearSentMessageCache(); + + try { + cacheA.recordSentMessage(123, 1); + expect(cacheB.wasSentByBot(123, 1)).toBe(true); + + cacheB.clearSentMessageCache(); + expect(cacheA.wasSentByBot(123, 1)).toBe(false); + } finally { + cacheA.clearSentMessageCache(); + } + }); }); describe("buildInlineKeyboard", () => {