From 7d2dd284438299351fb3b6da3d8f4a055ba8fdfa Mon Sep 17 00:00:00 2001 From: Shakker Date: Fri, 8 May 2026 20:52:48 +0100 Subject: [PATCH] test: tighten vitest process listener assertions --- test/scripts/vitest-process-group.test.ts | 37 +++++++++++++++++------ 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/test/scripts/vitest-process-group.test.ts b/test/scripts/vitest-process-group.test.ts index 75791bdac0c..f8d1c321050 100644 --- a/test/scripts/vitest-process-group.test.ts +++ b/test/scripts/vitest-process-group.test.ts @@ -7,6 +7,23 @@ import { } from "../../scripts/vitest-process-group.mjs"; describe("vitest process group helpers", () => { + function getListenerSet(listeners: Map void>>, event: string) { + const set = listeners.get(event); + expect(set).toBeDefined(); + if (!set) { + throw new Error(`expected ${event} listener set`); + } + return set; + } + + function expectListenerCount( + listeners: Map void>>, + event: string, + count: number, + ) { + expect(getListenerSet(listeners, event).size).toBe(count); + } + it("uses detached process groups on non-Windows hosts", () => { expect(shouldUseDetachedVitestProcessGroup("darwin")).toBe(true); expect(shouldUseDetachedVitestProcessGroup("linux")).toBe(true); @@ -84,17 +101,17 @@ describe("vitest process group helpers", () => { kill, }); - expect(listeners.get("SIGINT")?.size).toBe(1); - expect(listeners.get("SIGTERM")?.size).toBe(1); - expect(listeners.get("exit")?.size).toBe(1); + expectListenerCount(listeners, "SIGINT", 1); + expectListenerCount(listeners, "SIGTERM", 1); + expectListenerCount(listeners, "exit", 1); - listeners.get("SIGTERM")?.values().next().value?.(); + getListenerSet(listeners, "SIGTERM").values().next().value(); expect(kill).toHaveBeenCalledWith(-4200, "SIGTERM"); teardown(); - expect(listeners.get("SIGINT")?.size ?? 0).toBe(0); - expect(listeners.get("SIGTERM")?.size ?? 0).toBe(0); - expect(listeners.get("exit")?.size ?? 0).toBe(0); + expectListenerCount(listeners, "SIGINT", 0); + expectListenerCount(listeners, "SIGTERM", 0); + expectListenerCount(listeners, "exit", 0); }); it("raises process listener limits for highly parallel cleanup handlers", () => { @@ -134,8 +151,8 @@ describe("vitest process group helpers", () => { for (const teardown of teardowns) { teardown(); } - expect(listeners.get("SIGINT")?.size ?? 0).toBe(0); - expect(listeners.get("SIGTERM")?.size ?? 0).toBe(0); - expect(listeners.get("exit")?.size ?? 0).toBe(0); + expectListenerCount(listeners, "SIGINT", 0); + expectListenerCount(listeners, "SIGTERM", 0); + expectListenerCount(listeners, "exit", 0); }); });