Files
flynn/src/models/openai.test.ts
T
William Valentin 633cfcf713 feat: add OpenAI client for fallback support
Implements ModelClient interface with OpenAI SDK to support GPT models
as fallback when local inference is unavailable. Includes tests with
mocked OpenAI API responses.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 21:10:46 -08:00

34 lines
938 B
TypeScript

import { describe, it, expect, vi } from 'vitest';
import { OpenAIClient } from './openai.js';
vi.mock('openai', () => ({
default: vi.fn().mockImplementation(() => ({
chat: {
completions: {
create: vi.fn().mockResolvedValue({
choices: [{ message: { content: 'Hello from GPT!' }, finish_reason: 'stop' }],
usage: { prompt_tokens: 10, completion_tokens: 5 },
}),
},
},
})),
}));
describe('OpenAIClient', () => {
it('sends messages and returns response', async () => {
const client = new OpenAIClient({
apiKey: 'test-key',
model: 'gpt-4o',
});
const response = await client.chat({
messages: [{ role: 'user', content: 'Hello' }],
});
expect(response.content).toBe('Hello from GPT!');
expect(response.stopReason).toBe('stop');
expect(response.usage.inputTokens).toBe(10);
expect(response.usage.outputTokens).toBe(5);
});
});