mirror of
https://github.com/tiennm99/ccs.git
synced 2026-07-17 18:17:26 +00:00
55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
import { afterEach, describe, expect, it, mock } from 'bun:test';
|
|
import { parseProviderArg } from '../../../src/commands/cliproxy';
|
|
|
|
const originalConsoleError = console.error;
|
|
|
|
afterEach(() => {
|
|
console.error = originalConsoleError;
|
|
});
|
|
|
|
describe('parseProviderArg', () => {
|
|
it('defaults to all when --provider is not specified', () => {
|
|
const result = parseProviderArg(['--verbose']);
|
|
|
|
expect(result.provider).toBe('all');
|
|
expect(result.invalid).toBe(false);
|
|
expect(result.remainingArgs).toEqual(['--verbose']);
|
|
});
|
|
|
|
it('accepts canonical providers', () => {
|
|
const result = parseProviderArg(['--provider', 'claude']);
|
|
|
|
expect(result.provider).toBe('claude');
|
|
expect(result.invalid).toBe(false);
|
|
});
|
|
|
|
it('accepts external aliases', () => {
|
|
const result = parseProviderArg(['--provider', 'anthropic']);
|
|
|
|
expect(result.provider).toBe('claude');
|
|
expect(result.invalid).toBe(false);
|
|
});
|
|
|
|
it('marks invalid when provider value is unsupported', () => {
|
|
const errorSpy = mock(() => {});
|
|
console.error = errorSpy as typeof console.error;
|
|
|
|
const result = parseProviderArg(['--provider', 'nope']);
|
|
|
|
expect(result.provider).toBe('all');
|
|
expect(result.invalid).toBe(true);
|
|
expect(errorSpy).toHaveBeenCalled();
|
|
});
|
|
|
|
it('marks invalid when --provider value is missing', () => {
|
|
const errorSpy = mock(() => {});
|
|
console.error = errorSpy as typeof console.error;
|
|
|
|
const result = parseProviderArg(['--provider']);
|
|
|
|
expect(result.provider).toBe('all');
|
|
expect(result.invalid).toBe(true);
|
|
expect(errorSpy).toHaveBeenCalled();
|
|
});
|
|
});
|