mirror of
https://github.com/tiennm99/ccs.git
synced 2026-10-13 22:15:33 +00:00
fix(core): resolve edge cases and hardcoded drift
This commit is contained in:
1 parent
6074fcb0b6
commit
343ec959fc
19 files changed
+894
-228
No files matched your search
@@ -0,0 +1,38 @@
|
||||
import { describe, expect, test } from 'bun:test';
|
||||
|
||||
import { parseApiCommandArgs } from '../../../src/commands/api-command';
|
||||
|
||||
describe('api-command arg parser', () => {
|
||||
test('keeps positional API name when boolean flags precede it', () => {
|
||||
const parsed = parseApiCommandArgs(['--yes', 'my-api']);
|
||||
|
||||
expect(parsed.yes).toBe(true);
|
||||
expect(parsed.name).toBe('my-api');
|
||||
});
|
||||
|
||||
test('uses last value when repeated value flags are provided', () => {
|
||||
const parsed = parseApiCommandArgs([
|
||||
'profile-a',
|
||||
'--model',
|
||||
'claude-3-5-sonnet',
|
||||
'--model=claude-3-7-sonnet',
|
||||
]);
|
||||
|
||||
expect(parsed.name).toBe('profile-a');
|
||||
expect(parsed.model).toBe('claude-3-7-sonnet');
|
||||
expect(parsed.errors).toEqual([]);
|
||||
});
|
||||
|
||||
test('collects missing-value errors for required option values', () => {
|
||||
const parsed = parseApiCommandArgs(['profile-a', '--base-url', '--api-key']);
|
||||
|
||||
expect(parsed.errors).toEqual(['Missing value for --base-url', 'Missing value for --api-key']);
|
||||
});
|
||||
|
||||
test('supports option terminator for positional args that look like flags', () => {
|
||||
const parsed = parseApiCommandArgs(['--yes', '--', '-my-api']);
|
||||
|
||||
expect(parsed.yes).toBe(true);
|
||||
expect(parsed.name).toBe('-my-api');
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user