fix(update): harden root selection

This commit is contained in:
Peter Steinberger
2026-01-10 20:32:15 +01:00
parent 777fb6b7bb
commit 4c4c167416
7 changed files with 209 additions and 46 deletions

30
src/cli/run-main.test.ts Normal file
View File

@@ -0,0 +1,30 @@
import { describe, expect, it } from "vitest";
import { rewriteUpdateFlagArgv } from "./run-main.js";
describe("rewriteUpdateFlagArgv", () => {
it("leaves argv unchanged when --update is absent", () => {
const argv = ["node", "entry.js", "status"];
expect(rewriteUpdateFlagArgv(argv)).toBe(argv);
});
it("rewrites --update into the update command", () => {
expect(rewriteUpdateFlagArgv(["node", "entry.js", "--update"])).toEqual([
"node",
"entry.js",
"update",
]);
});
it("preserves global flags that appear before --update", () => {
expect(
rewriteUpdateFlagArgv(["node", "entry.js", "--profile", "p", "--update"]),
).toEqual(["node", "entry.js", "--profile", "p", "update"]);
});
it("keeps update options after the rewritten command", () => {
expect(
rewriteUpdateFlagArgv(["node", "entry.js", "--update", "--json"]),
).toEqual(["node", "entry.js", "update", "--json"]);
});
});