seraph-agent
Version:
An extremely lightweight, SRE autonomous AI agent for seamless integration with common observability tasks.
35 lines (28 loc) • 1.02 kB
text/typescript
import { OpenAIProvider } from '../openai';
import OpenAI from 'openai';
import { SeraphConfig } from '../../config';
jest.mock('openai');
describe('OpenAIProvider', () => {
const mockedOpenAI = OpenAI as jest.MockedClass<typeof OpenAI>;
it('should handle errors from the OpenAI API', async () => {
const create = jest.fn().mockRejectedValue(new Error('OpenAI API error'));
mockedOpenAI.prototype.chat = { completions: { create } } as any;
const config: SeraphConfig = {
port: 8080,
workers: 4,
apiKey: 'test-key',
serverApiKey: null,
};
const provider = new OpenAIProvider(config);
await expect(provider.generate('test prompt')).rejects.toThrow('OpenAI API error');
});
it('should throw an error if no API key is provided', () => {
const config: SeraphConfig = {
port: 8080,
workers: 4,
apiKey: null,
serverApiKey: null,
};
expect(() => new OpenAIProvider(config)).toThrow('OpenAI API key not found in config.');
});
});