From 6fcf5a0fde506105331aef37095e8f174bedc0e7 Mon Sep 17 00:00:00 2001 From: "coderabbitai[bot]" <136622811+coderabbitai[bot]@users.noreply.github.com> Date: Thu, 7 May 2026 13:45:22 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20CodeRabbit=20Chat:=20Implement?= =?UTF-8?q?=20requested=20code=20changes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wizard/src/__tests__/parse-args.test.ts | 5 +++++ packages/wizard/src/bin/parse-args.ts | 19 ++++++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/packages/wizard/src/__tests__/parse-args.test.ts b/packages/wizard/src/__tests__/parse-args.test.ts index 604b06f4..54572e38 100644 --- a/packages/wizard/src/__tests__/parse-args.test.ts +++ b/packages/wizard/src/__tests__/parse-args.test.ts @@ -32,6 +32,11 @@ describe('wizard parseArgs — mode resolution', () => { expect(parseArgs(argv('--mode=implement')).mode).toBe('implement') }) + it('rejects --mode with no value', () => { + const result = parseArgs(argv('--mode')) + expect(result.modeError).toMatch(/--mode requires a value/) + }) + it('rejects unknown --mode values with a clear error', () => { const result = parseArgs(argv('--mode', 'yolo')) expect(result.modeError).toMatch(/Unknown --mode value/) diff --git a/packages/wizard/src/bin/parse-args.ts b/packages/wizard/src/bin/parse-args.ts index f497a950..c4faa691 100644 --- a/packages/wizard/src/bin/parse-args.ts +++ b/packages/wizard/src/bin/parse-args.ts @@ -33,17 +33,22 @@ export function parseArgs(argv: string[]): ParsedArgs { mode = 'implement' continue } - if (arg === '--mode' && i + 1 < args.length) { - const next = args[i + 1] ?? '' - if (next === 'plan' || next === 'implement') { - mode = next - i++ + if (arg === '--mode') { + if (i + 1 < args.length) { + const next = args[i + 1] + if (next === 'plan' || next === 'implement') { + mode = next + i++ + } else { + modeError = `Unknown --mode value: ${next}. Expected 'plan' or 'implement'.` + break + } } else { - modeError = `Unknown --mode value: ${next}. Expected 'plan' or 'implement'.` + modeError = `--mode requires a value: 'plan' or 'implement'.` break } continue - } + if (arg.startsWith('--mode=')) { const value = arg.slice('--mode='.length) if (value === 'plan' || value === 'implement') {