

























@@ -5,6 +5,21 @@ import {
55} from "./internal/test-builders.test-support.js";
66import { createDiscordRequestClient, DISCORD_REST_TIMEOUT_MS } from "./proxy-request-client.js";
778+async function expectAbortError(promise: Promise<unknown>) {
9+let abortError: unknown;
10+try {
11+await promise;
12+} catch (error) {
13+abortError = error;
14+}
15+expect(abortError).toBeInstanceOf(DOMException);
16+if (!(abortError instanceof DOMException)) {
17+throw new Error("expected Discord request abort error");
18+}
19+expect(abortError.name).toBe("AbortError");
20+expect(abortError.message).toBe("The operation was aborted.");
21+}
22+823describe("createDiscordRequestClient", () => {
924it("preserves the REST client's abort signal for proxied fetch calls", async () => {
1025const fetchSpy = vi.fn(async (_input: string | URL | Request, init?: RequestInit) => {
@@ -33,10 +48,7 @@ describe("createDiscordRequestClient", () => {
3348timeout: 20,
3449});
355036-await expect(client.get("/channels/123/messages")).rejects.toMatchObject({
37-message: "The operation was aborted.",
38-name: "AbortError",
39-});
51+await expectAbortError(client.get("/channels/123/messages"));
4052}, 1_000);
41534254it("lets abortAllRequests cancel active proxied fetches", async () => {
@@ -53,10 +65,7 @@ describe("createDiscordRequestClient", () => {
53655466client.abortAllRequests();
556756-await expect(request).rejects.toMatchObject({
57-message: "The operation was aborted.",
58-name: "AbortError",
59-});
68+await expectAbortError(request);
6069if (!abortable.receivedSignal) {
6170throw new Error("Expected proxied fetch abort signal");
6271}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。