| import { describe, it, expect, vi, beforeEach } from 'vitest'; |
| import { loadProvider } from '../src/providers/provider.mjs'; |
| import { OllamaProvider } from '../src/providers/ollama_provider.mjs'; |
| import { OpenAIProvider } from '../src/providers/openai_provider.mjs'; |
| import { HttpProvider } from '../src/providers/http_provider.mjs'; |
|
|
| vi.stubGlobal("fetch", vi.fn(async () => ({ |
| ok: true, |
| json: async () => ({ response: "OK" }) |
| }))); |
|
|
| describe("provider system", () => { |
|
|
| beforeEach(() => { |
| vi.clearAllMocks(); |
| }); |
|
|
| it("loads Ollama provider", () => { |
| process.env.PROVIDER_TYPE = "ollama"; |
| const p = loadProvider(); |
| expect(p).toBeInstanceOf(OllamaProvider); |
| }); |
|
|
| it("loads OpenAI provider", () => { |
| process.env.PROVIDER_TYPE = "openai"; |
| process.env.OPENAI_API_KEY = "test"; |
| const p = loadProvider(); |
| expect(p).toBeInstanceOf(OpenAIProvider); |
| }); |
|
|
| it("loads HTTP provider", () => { |
| process.env.PROVIDER_TYPE = "http"; |
| const p = loadProvider(); |
| expect(p).toBeInstanceOf(HttpProvider); |
| }); |
|
|
| it("provider.generate() returns mocked content", async () => { |
| process.env.PROVIDER_TYPE = "ollama"; |
| const p = loadProvider(); |
| const out = await p.generate("hello"); |
| expect(out).toBe("OK"); |
| }); |
|
|
| }); |
|
|