From 0e76dafe42d84f8543fd6f7bede34bf05fd6183f Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 17 May 2026 11:42:37 +0100 Subject: [PATCH] test: avoid telegram startup abort deadlock --- .../telegram/src/channel.gateway.test.ts | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/extensions/telegram/src/channel.gateway.test.ts b/extensions/telegram/src/channel.gateway.test.ts index da9ad23cbc7..6063f6642de 100644 --- a/extensions/telegram/src/channel.gateway.test.ts +++ b/extensions/telegram/src/channel.gateway.test.ts @@ -473,19 +473,21 @@ describe("telegramPlugin gateway startup", () => { it("abandons a queued startup probe when the account aborts", async () => { installTelegramRuntime(); const releaseProbe: Array<() => void> = []; - probeTelegram.mockImplementation( - async () => - await new Promise((resolve) => { - releaseProbe.push(() => - resolve({ - ok: true, - status: null, - error: null, - elapsedMs: 12, - }), - ); - }), - ); + let startedProbes = 0; + probeTelegram.mockImplementation(async () => { + startedProbes += 1; + if (startedProbes <= 2) { + await new Promise((resolve) => { + releaseProbe.push(resolve); + }); + } + return { + ok: true, + status: null, + error: null, + elapsedMs: 12, + }; + }); monitorTelegramProvider.mockResolvedValue(undefined); const first = startTelegramAccount("alpha"); @@ -498,12 +500,11 @@ describe("telegramPlugin gateway startup", () => { "expected startup probe slots to fill", ); abortQueued.abort(); - await expect(queued.task).resolves.toBeUndefined(); for (const release of releaseProbe.splice(0)) { release(); } - await Promise.all([first.task, second.task]); + await Promise.all([first.task, second.task, queued.task]); expect(probeTelegram).toHaveBeenCalledTimes(2); expect(monitorTelegramProvider).toHaveBeenCalledTimes(2); });