fix(test): require vitest profile output dir

This commit is contained in:
Vincent Koc
2026-06-06 22:16:53 +02:00
parent 66a1cfb7be
commit c2af0475fe
2 changed files with 16 additions and 1 deletions

View File

@@ -10,6 +10,14 @@ import { createPnpmRunnerSpawnSpec } from "./pnpm-runner.mjs";
/**
* Parses Vitest profiler mode, output directory, and forwarded Vitest args.
*/
function readOutputDirValue(argv, index) {
const value = argv[index + 1];
if (value === undefined || value === "" || value.startsWith("--")) {
throw new Error("Expected --output-dir <dir>.");
}
return value;
}
export function parseArgs(argv) {
const args = {
mode: "",
@@ -28,7 +36,7 @@ export function parseArgs(argv) {
break;
}
if (arg === "--output-dir") {
args.outputDir = argv[i + 1] ?? "";
args.outputDir = readOutputDirValue(argv, i);
i += 1;
continue;
}

View File

@@ -89,6 +89,13 @@ describe("scripts/run-vitest-profile", () => {
});
});
it("rejects missing profile output directories", () => {
expect(() => parseArgs(["runner", "--output-dir"])).toThrow("Expected --output-dir <dir>.");
expect(() => parseArgs(["runner", "--output-dir", "--", "--config", "custom.ts"])).toThrow(
"Expected --output-dir <dir>.",
);
});
it("passes vitest args after a separator", () => {
expect(parseArgs(["main", "--output-dir", "/tmp/out", "--", "--config", "custom.ts"])).toEqual({
mode: "main",