mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-10-04 10:43:46 +10:00
43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
|
vi.mock("@reactive-resume/utils/monorepo.node", () => ({ findWorkspaceRoot: () => null }));
|
|
|
|
beforeEach(() => {
|
|
vi.resetModules();
|
|
for (const name of [
|
|
"WEB_ACCESS_PROVIDER",
|
|
"WEB_ACCESS_API_KEY",
|
|
"WEB_ACCESS_API_URL",
|
|
"AI_PROVIDER",
|
|
"AI_MODEL",
|
|
"AI_API_KEY",
|
|
"AI_BASE_URL",
|
|
])
|
|
vi.stubEnv(name, undefined);
|
|
});
|
|
afterEach(() => vi.unstubAllEnvs());
|
|
|
|
describe("server web access configuration", () => {
|
|
it.each([
|
|
{ WEB_ACCESS_API_KEY: "test-key" },
|
|
{ WEB_ACCESS_API_URL: "http://firecrawl:3002" },
|
|
{ WEB_ACCESS_PROVIDER: "firecrawl" },
|
|
{ WEB_ACCESS_PROVIDER: "tavily" },
|
|
{ WEB_ACCESS_PROVIDER: "exa", WEB_ACCESS_API_KEY: "test-key", WEB_ACCESS_API_URL: "https://other.example" },
|
|
{ WEB_ACCESS_PROVIDER: "tavily", WEB_ACCESS_API_KEY: "test-key", WEB_ACCESS_API_URL: "https://other.example" },
|
|
])("rejects incomplete or inconsistent configuration: %j", async (settings) => {
|
|
for (const [name, value] of Object.entries(settings)) vi.stubEnv(name, value);
|
|
await expect(import("./server")).rejects.toThrow("Web access requires WEB_ACCESS_PROVIDER");
|
|
});
|
|
it.each(["firecrawl", "tavily", "exa"])("accepts a shared %s connection", async (provider) => {
|
|
vi.stubEnv("WEB_ACCESS_PROVIDER", provider);
|
|
vi.stubEnv("WEB_ACCESS_API_KEY", "test-key");
|
|
expect((await import("./server")).env.WEB_ACCESS_PROVIDER).toBe(provider);
|
|
});
|
|
it("accepts keyless custom Firecrawl", async () => {
|
|
vi.stubEnv("WEB_ACCESS_PROVIDER", "firecrawl");
|
|
vi.stubEnv("WEB_ACCESS_API_URL", "http://firecrawl:3002");
|
|
expect((await import("./server")).env.WEB_ACCESS_API_KEY).toBeUndefined();
|
|
});
|
|
});
|