review-copilot
Version:
ReviewCopilot - AI-powered code review assistant with customizable prompts
48 lines (47 loc) • 1.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const ai_provider_factory_1 = require("../providers/ai-provider-factory");
const openai_provider_1 = require("../providers/openai-provider");
const deepseek_provider_1 = require("../providers/deepseek-provider");
jest.mock('../providers/openai-provider');
jest.mock('../providers/deepseek-provider');
describe('AIProviderFactory', () => {
const openaiConfig = {
provider: 'openai',
apiKey: 'key',
model: '',
baseURL: '',
reviewLanguage: 'en',
};
const deepseekConfig = {
provider: 'deepseek',
apiKey: 'key',
model: '',
baseURL: '',
reviewLanguage: 'en',
};
afterEach(() => {
jest.clearAllMocks();
});
it('should create an OpenAIProvider for openai config', () => {
const provider = ai_provider_factory_1.AIProviderFactory.createProvider(openaiConfig);
expect(openai_provider_1.OpenAIProvider).toHaveBeenCalledWith(expect.objectContaining({
provider: 'openai',
apiKey: 'key',
reviewLanguage: 'en',
}));
expect(provider).toBeInstanceOf(openai_provider_1.OpenAIProvider);
});
it('should create a DeepSeekProvider for deepseek config', () => {
const provider = ai_provider_factory_1.AIProviderFactory.createProvider(deepseekConfig);
expect(deepseek_provider_1.DeepSeekProvider).toHaveBeenCalledWith(expect.objectContaining({
provider: 'deepseek',
apiKey: 'key',
reviewLanguage: 'en',
}));
expect(provider).toBeInstanceOf(deepseek_provider_1.DeepSeekProvider);
});
it('should throw for unsupported provider', () => {
expect(() => ai_provider_factory_1.AIProviderFactory.createProvider({ provider: 'foo' })).toThrow('Unsupported AI provider: foo');
});
});