distill-pipeline / tests /provider.mock.test.mjs
htaf's picture
initial commit
9af7af9
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");
});
});