mirror of
https://github.com/tiennm99/ccs.git
synced 2026-10-11 12:09:03 +00:00
60 lines
1.9 KiB
TypeScript
60 lines
1.9 KiB
TypeScript
import { describe, expect, it } from 'bun:test';
|
|
import {
|
|
CLIPROXY_PROVIDER_IDS,
|
|
getOAuthCallbackPort,
|
|
getProviderDisplayName,
|
|
getProvidersByOAuthFlow,
|
|
isCLIProxyProvider,
|
|
mapExternalProviderName,
|
|
} from '../../../src/cliproxy/provider-capabilities';
|
|
|
|
describe('provider-capabilities', () => {
|
|
it('keeps canonical provider IDs backward-compatible', () => {
|
|
expect(CLIPROXY_PROVIDER_IDS).toEqual([
|
|
'gemini',
|
|
'codex',
|
|
'agy',
|
|
'qwen',
|
|
'iflow',
|
|
'kiro',
|
|
'ghcp',
|
|
'claude',
|
|
]);
|
|
});
|
|
|
|
it('validates provider IDs', () => {
|
|
expect(isCLIProxyProvider('gemini')).toBe(true);
|
|
expect(isCLIProxyProvider('ghcp')).toBe(true);
|
|
expect(isCLIProxyProvider('not-a-provider')).toBe(false);
|
|
expect(isCLIProxyProvider('Gemini')).toBe(false);
|
|
});
|
|
|
|
it('returns providers by OAuth flow capability', () => {
|
|
expect(getProvidersByOAuthFlow('device_code')).toEqual(['qwen', 'ghcp']);
|
|
expect(getProvidersByOAuthFlow('authorization_code')).toEqual([
|
|
'gemini',
|
|
'codex',
|
|
'agy',
|
|
'iflow',
|
|
'kiro',
|
|
'claude',
|
|
]);
|
|
});
|
|
|
|
it('maps external provider aliases to canonical IDs', () => {
|
|
expect(mapExternalProviderName('gemini-cli')).toBe('gemini');
|
|
expect(mapExternalProviderName('antigravity')).toBe('agy');
|
|
expect(mapExternalProviderName('codewhisperer')).toBe('kiro');
|
|
expect(mapExternalProviderName('github-copilot')).toBe('ghcp');
|
|
expect(mapExternalProviderName('copilot')).toBe('ghcp');
|
|
expect(mapExternalProviderName('anthropic')).toBe('claude');
|
|
expect(mapExternalProviderName('unknown-provider')).toBeNull();
|
|
});
|
|
|
|
it('exposes callback port and display name capabilities', () => {
|
|
expect(getOAuthCallbackPort('qwen')).toBeNull();
|
|
expect(getOAuthCallbackPort('gemini')).toBe(8085);
|
|
expect(getProviderDisplayName('agy')).toBe('AntiGravity');
|
|
});
|
|
});
|