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); }); });