diff --git a/test/unit/face-index.test.ts b/test/unit/face-index.test.ts index 1f3aa19e..1b2ed8d9 100644 --- a/test/unit/face-index.test.ts +++ b/test/unit/face-index.test.ts @@ -2135,7 +2135,19 @@ test("aborting during add --all backpressure stops before the next wave", async input: "add", rest: [], opts: { all: true, to: "col_abort", batch: 1 }, case: openCase(cdir), profile, signal: controller.signal, }); - setTimeout(() => controller.abort(new Error("test abort")), 100); + // Abort only once wave 0's membership is visibly written: the run is then + // guaranteed to be inside the 60s between-wave settle sleep, whose abort + // path rejects with signal.reason. A wall-clock timer races the wave-0 + // child processes under suite load — the abort can land mid-spawn, where + // node throws its own generic AbortError (reason demoted to `cause`). + let runSettled = false; + void run.catch(() => {}).finally(() => { runSettled = true; }); + const deadline = Date.now() + 30_000; + while (!runSettled && (findIndex(openCase(cdir), "col_abort")?.members.length ?? 0) < 1) { + assert.ok(Date.now() < deadline, "wave 0 never registered its member"); + await new Promise((r) => setTimeout(r, 10)); + } + controller.abort(new Error("test abort")); await assert.rejects(run, /test abort/); assert.equal(findIndex(openCase(cdir), "col_abort")!.members.length, 1, "second wave was never submitted"); } finally { diff --git a/vscode/package-lock.json b/vscode/package-lock.json index b34849a9..4ed3afa2 100644 --- a/vscode/package-lock.json +++ b/vscode/package-lock.json @@ -2554,9 +2554,9 @@ "license": "BSD-2-Clause" }, "node_modules/brace-expansion": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.8.tgz", - "integrity": "sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", "dev": true, "license": "MIT", "dependencies": { @@ -4958,9 +4958,9 @@ } }, "node_modules/postcss": { - "version": "8.5.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.19.tgz", - "integrity": "sha512-Mz8SaolMd8nB+G13WkORcxQKHZ/NE4xXevtkJHVuG+guo9/wYKlIMTKAqGdEmYOXR2ijPjTYNHssizdaVSUNdQ==", + "version": "8.5.25", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", "dev": true, "funding": [ { @@ -4978,7 +4978,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.16", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" },