diff --git a/packages/coding-agent/test/oauth-discovery.test.ts b/packages/coding-agent/test/oauth-discovery.test.ts index 8a5023ab5..d7c317c38 100644 --- a/packages/coding-agent/test/oauth-discovery.test.ts +++ b/packages/coding-agent/test/oauth-discovery.test.ts @@ -646,16 +646,14 @@ describe("RFC 8414 ยง3.3 issuer validation", () => { describe("bounded discovery fetches", () => { // A fetch that never resolves on its own; it settles only when its // AbortSignal fires. Pre-fix, discovery passed no signal, so this hung forever. - const hangingFetch: FetchImpl = (_input, init) => - new Promise((_resolve, reject) => { - const signal = init?.signal; - const abort = () => reject(new DOMException("aborted", "AbortError")); - if (signal?.aborted) { - abort(); - return; - } - signal?.addEventListener("abort", abort, { once: true }); - }); + const hangingFetch: FetchImpl = (_input, init) => { + const { promise, reject } = Promise.withResolvers(); + const signal = init?.signal; + const abort = () => reject(new DOMException("aborted", "AbortError")); + if (signal?.aborted) abort(); + else signal?.addEventListener("abort", abort, { once: true }); + return promise; + }; it("aborts hanging well-known discovery fetches instead of stalling", async () => { const oauth = await discoverOAuthEndpoints("https://mcp.example.test/mcp", undefined, undefined, {