From 7c9127c94dd15dc66fa1ce0097bddbf4ebed7fdf Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 22 May 2026 19:50:45 +0100 Subject: [PATCH] test(telegram): wait for polling watchdog deterministically --- extensions/telegram/src/polling-session.test.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/extensions/telegram/src/polling-session.test.ts b/extensions/telegram/src/polling-session.test.ts index 1f408e20685..bcf82aabed7 100644 --- a/extensions/telegram/src/polling-session.test.ts +++ b/extensions/telegram/src/polling-session.test.ts @@ -95,6 +95,8 @@ type WorkerMessageListener = (message: TelegramIngressWorkerMessage) => void; type AsyncVoidFn = () => Promise; type MockCallSource = { mock: { calls: Array> } }; +const POLLING_TEST_WATCHDOG_INTERVAL_MS = 30_000; + function mockObjectArg( source: MockCallSource, label: string, @@ -155,8 +157,10 @@ function makeBot() { function installPollingStallWatchdogHarness(dateNowSequence: readonly number[] = [0, 0]) { let watchdog: (() => void) | undefined; - const setIntervalSpy = vi.spyOn(globalThis, "setInterval").mockImplementation((fn) => { - watchdog = fn as () => void; + const setIntervalSpy = vi.spyOn(globalThis, "setInterval").mockImplementation((fn, delay) => { + if (delay === POLLING_TEST_WATCHDOG_INTERVAL_MS) { + watchdog = fn as () => void; + } return 1 as unknown as ReturnType; }); const clearIntervalSpy = vi.spyOn(globalThis, "clearInterval").mockImplementation(() => {}); @@ -173,7 +177,7 @@ function installPollingStallWatchdogHarness(dateNowSequence: readonly number[] = return { async waitForWatchdog() { - for (let attempt = 0; attempt < 20; attempt += 1) { + for (let attempt = 0; attempt < 200; attempt += 1) { if (watchdog) { break; }