perf(test): fake abort timer and dedupe slack thread cases

This commit is contained in:
Peter Steinberger
2026-02-18 16:14:01 +00:00
parent 29d3bb278f
commit 7648f6bb00
2 changed files with 27 additions and 51 deletions

View File

@@ -1,4 +1,4 @@
import { describe, expect, it } from "vitest";
import { describe, expect, it, vi } from "vitest";
import { bindAbortRelay } from "../utils/fetch-timeout.js";
/**
@@ -25,12 +25,17 @@ describe("abort pattern: .bind() vs arrow closure (#7174)", () => {
});
it("bound abort works with setTimeout", async () => {
const controller = new AbortController();
const timer = setTimeout(controller.abort.bind(controller), 10);
expect(controller.signal.aborted).toBe(false);
await new Promise((r) => setTimeout(r, 50));
expect(controller.signal.aborted).toBe(true);
clearTimeout(timer);
vi.useFakeTimers();
try {
const controller = new AbortController();
const timer = setTimeout(controller.abort.bind(controller), 10);
expect(controller.signal.aborted).toBe(false);
await vi.advanceTimersByTimeAsync(10);
expect(controller.signal.aborted).toBe(true);
clearTimeout(timer);
} finally {
vi.useRealTimers();
}
});
it("bindAbortRelay() preserves default AbortError reason when used as event listener", () => {