import { describe, it, expect } from 'bun:test'; import { createProvider, type ProviderName } from './factory.js'; import { ClaudeProvider } from './claude.js'; import { MockProvider } from './mock.js'; import { OpenCodeProvider } from './opencode.js'; describe('createProvider', () => { it('returns ClaudeProvider for claude', () => { expect(createProvider('claude')).toBeInstanceOf(ClaudeProvider); }); it('returns OpenCodeProvider for opencode', () => { expect(createProvider('opencode')).toBeInstanceOf(OpenCodeProvider); }); it('returns MockProvider for mock', () => { expect(createProvider('mock')).toBeInstanceOf(MockProvider); }); it('throws for unknown name', () => { expect(() => createProvider('bogus' as ProviderName)).toThrow(/Unknown provider/); }); });