authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-02-26 18:21:38-08:00
committergravatar for jmarminge@gmail.comJulius Marminge <jmarminge@gmail.com> 2026-02-26 18:40:23-08:00
logc9a59a26bb85902b9b2e828e1f99cc0760105ae4
treeaba4520ad03c8a231bb42f2713c17b7213b3138d
parente0fe4270aace7279696dd83be62990cbc7a84c63

Reject flag tokens as values in dev-runner arg parsing

- Treat `--` and `-...` tokens after value flags as missing values - Add regression test for `--state-dir --continue` to throw the expected error

2 files changed, 7 insertions(+), 1 deletions(-)

scripts/dev-runner.mjs+1-1
......@@ -131,7 +131,7 @@ export function parseDevRunnerArgs(rawArgs) {
131131 let value = parsedFlag.value;
132132 if (value === undefined) {
133133 const next = args[index + 1];
134 if (next === undefined) {
134 if (next === undefined || next === "--" || next.startsWith("-")) {
135135 throw new Error(`Missing value for --${parsedFlag.name}`);
136136 }
137137 value = next;
scripts/dev-runner.test.ts+6
......@@ -30,6 +30,12 @@ describe("parseDevRunnerArgs", () => {
3030 it("throws when a value flag is missing its value", () => {
3131 expect(() => parseDevRunnerArgs(["--state-dir"])).toThrow("Missing value for --state-dir");
3232 });
33
34 it("throws when a value flag is followed by another flag token", () => {
35 expect(() => parseDevRunnerArgs(["--state-dir", "--continue"])).toThrow(
36 "Missing value for --state-dir",
37 );
38 });
3339});
3440
3541describe("createDevRunnerEnv", () => {