mirror of
https://github.com/tiennm99/ccs.git
synced 2026-10-14 06:17:27 +00:00
fix(cli): improve cliproxy target parsing edge cases
- support POSIX -- terminator so dash-prefixed variant names remain positional - export variant parser for direct unit tests - add --target parsing coverage for API and cliproxy arg parsers
This commit is contained in:
1 parent
ac1c744239
commit
8d95de9fd3
3 files changed
+98
-10
No files matched your search
@@ -44,10 +44,40 @@ describe('api-command arg parser', () => {
|
||||
expect(parsed.errors).toEqual([]);
|
||||
});
|
||||
|
||||
test('parses --target=value for default profile target', () => {
|
||||
const parsed = parseApiCommandArgs(['my-api', '--target=droid']);
|
||||
|
||||
expect(parsed.name).toBe('my-api');
|
||||
expect(parsed.target).toBe('droid');
|
||||
expect(parsed.errors).toEqual([]);
|
||||
});
|
||||
|
||||
test('validates invalid --target values', () => {
|
||||
const parsed = parseApiCommandArgs(['my-api', '--target', 'invalid-target']);
|
||||
|
||||
expect(parsed.target).toBeUndefined();
|
||||
expect(parsed.errors).toEqual(['Invalid --target value "invalid-target". Use: claude or droid']);
|
||||
});
|
||||
|
||||
test('collects missing-value error for --target with no value', () => {
|
||||
const parsed = parseApiCommandArgs(['my-api', '--target']);
|
||||
|
||||
expect(parsed.target).toBeUndefined();
|
||||
expect(parsed.errors).toEqual(['Missing value for --target']);
|
||||
});
|
||||
|
||||
test('treats empty --target=value as missing value', () => {
|
||||
const parsed = parseApiCommandArgs(['my-api', '--target=']);
|
||||
|
||||
expect(parsed.target).toBeUndefined();
|
||||
expect(parsed.errors).toEqual(['Missing value for --target']);
|
||||
});
|
||||
|
||||
test('uses last --target value when repeated', () => {
|
||||
const parsed = parseApiCommandArgs(['my-api', '--target', 'claude', '--target=droid']);
|
||||
|
||||
expect(parsed.name).toBe('my-api');
|
||||
expect(parsed.target).toBe('droid');
|
||||
expect(parsed.errors).toEqual([]);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user