fix(core): resolve edge cases and hardcoded drift

This commit is contained in:
Tam Nhu Tran committed 2026-02-21 10:32:19 +07:00
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');
});
});