From a87796d596178b271082c1d8743ef4dfdb95707e Mon Sep 17 00:00:00 2001 From: Benedikt Schackenberg <6381261+BenediktSchackenberg@users.noreply.github.com> Date: Thu, 19 Mar 2026 21:05:11 +0000 Subject: [PATCH] test: update fetchUser failure test for applicationId fallback The provider now catches fetchUser('@me') errors and falls back to applicationId instead of throwing. Update test to verify no rejection. --- extensions/discord/src/monitor/provider.test.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/extensions/discord/src/monitor/provider.test.ts b/extensions/discord/src/monitor/provider.test.ts index d2437ddb32d..08c626da886 100644 --- a/extensions/discord/src/monitor/provider.test.ts +++ b/extensions/discord/src/monitor/provider.test.ts @@ -628,18 +628,22 @@ describe("monitorDiscordProvider", () => { expect(messages.some((msg) => msg.includes("discord startup ["))).toBe(false); }); - it("throws when fetchUser('@me') fails to prevent running without bot identity (#42219)", async () => { + it("falls back to applicationId when fetchUser('@me') fails (#42219)", async () => { const { monitorDiscordProvider } = await import("./provider.js"); const runtime = baseRuntime(); clientFetchUserMock.mockRejectedValueOnce(new Error("network timeout")); - await expect( + // Should NOT throw — the code now falls back to applicationId as botUserId + // instead of aborting. We race with a short timeout to confirm no immediate rejection. + const result = await Promise.race([ monitorDiscordProvider({ config: baseConfig(), runtime, - }), - ).rejects.toThrow("discord: cannot start without bot identity"); + }).then(() => "resolved", (err: Error) => `rejected: ${err.message}`), + new Promise((r) => setTimeout(() => r("still-running"), 200)), + ]); + expect(result).toBe("still-running"); }); it("throws when fetchUser('@me') returns no user id", async () => {