video_translate/src/server/llmProvider.test.ts
2026-03-18 11:42:00 +08:00

48 lines
1.3 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
DEFAULT_DOUBAO_MODEL,
DEFAULT_LLM_PROVIDER,
normalizeLlmProvider,
resolveLlmProviderConfig,
} from './llmProvider';
describe('llmProvider', () => {
it('defaults to doubao when the incoming provider is missing', () => {
expect(normalizeLlmProvider(undefined)).toBe(DEFAULT_LLM_PROVIDER);
});
it('normalizes a supported provider name', () => {
expect(normalizeLlmProvider('Gemini')).toBe('gemini');
expect(normalizeLlmProvider('doubao')).toBe('doubao');
});
it('rejects unsupported providers', () => {
expect(() => normalizeLlmProvider('gpt')).toThrow(/Unsupported LLM provider/);
});
it('returns the selected doubao provider config from env', () => {
expect(
resolveLlmProviderConfig('doubao', {
ARK_API_KEY: 'ark-key',
}),
).toEqual({
provider: 'doubao',
apiKey: 'ark-key',
model: DEFAULT_DOUBAO_MODEL,
baseUrl: 'https://ark.cn-beijing.volces.com/api/v3/responses',
});
});
it('returns the selected gemini provider config from env', () => {
expect(
resolveLlmProviderConfig('gemini', {
GEMINI_API_KEY: 'gemini-key',
}),
).toEqual({
provider: 'gemini',
apiKey: 'gemini-key',
model: 'gemini-2.5-flash',
});
});
});