Files
GEOAgentArticleOptimizer/tests/sample-flow/runner.test.ts
T

60 lines
1.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
baseURLForPort,
parseEnvFile,
preflight,
redact,
waitForServer,
} from "../../scripts/run-geo-sample-e2e.mjs";
describe("run-geo-sample-e2e helpers", () => {
it("parses simple dotenv files while ignoring comments", () => {
expect(
parseEnvFile(`
# comment
API_ACCESS_KEY=local-dev-key
DEEPSEEK_API_KEY="secret"
EMPTY=
`),
).toEqual({
API_ACCESS_KEY: "local-dev-key",
DEEPSEEK_API_KEY: "secret",
EMPTY: "",
});
});
it("requires a provider key in live mode", () => {
expect(() =>
preflight(
{
API_ACCESS_KEY: "local-dev-key",
LLM_PROVIDER: "deepseek",
},
"deepseek",
),
).toThrow("DEEPSEEK_API_KEY is required for live sample E2E");
});
it("uses localhost for Next dev URLs", () => {
expect(baseURLForPort(3000)).toBe("http://localhost:3000");
});
it("redacts configured secrets from logs", () => {
expect(
redact("x-api-key: local-dev-key provider secret", [
"local-dev-key",
"provider secret",
]),
).toBe("x-api-key: [REDACTED] [REDACTED]");
});
it("fails fast when the dev server process exits before readiness", async () => {
await expect(
waitForServer("http://127.0.0.1:9", 1000, {
exitCode: 1,
}),
).rejects.toThrow("dev server exited before http://127.0.0.1:9 became ready");
});
});