60 lines
1.4 KiB
TypeScript
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");
|
|
});
|
|
});
|