Files
windmill/ai_evals/core/windmillBackendSettings.test.ts

64 lines
1.8 KiB
TypeScript

import { afterEach, describe, expect, it } from "bun:test";
import { resolveWindmillBackendSettings } from "./windmillBackendSettings";
const ENV_KEYS = [
"WMILL_AI_EVAL_BACKEND_URL",
"WINDMILL_URL",
"WINDMILL_BASE_URL",
"REMOTE",
"WMILL_AI_EVAL_BACKEND_EMAIL",
"WMILL_AI_EVAL_BACKEND_PASSWORD",
"WMILL_AI_EVAL_BACKEND_WORKSPACE",
] as const;
const ORIGINAL_ENV = Object.fromEntries(
ENV_KEYS.map((key) => [key, process.env[key]]),
) as Record<(typeof ENV_KEYS)[number], string | undefined>;
afterEach(() => {
for (const key of ENV_KEYS) {
const value = ORIGINAL_ENV[key];
if (value === undefined) {
delete process.env[key];
} else {
process.env[key] = value;
}
}
});
describe("resolveWindmillBackendSettings", () => {
it("uses backend URL/auth defaults and the optional explicit workspace", () => {
delete process.env.WMILL_AI_EVAL_BACKEND_URL;
delete process.env.WINDMILL_URL;
delete process.env.WINDMILL_BASE_URL;
delete process.env.REMOTE;
process.env.WMILL_AI_EVAL_BACKEND_WORKSPACE = "shared-evals";
expect(resolveWindmillBackendSettings()).toEqual({
baseUrl: "http://127.0.0.1:8000",
email: "admin@windmill.dev",
password: "changeme",
workspaceOverride: "shared-evals",
});
});
it("does not expose workspace retention knobs", () => {
process.env.WMILL_AI_EVAL_BACKEND_URL = "http://backend.test/";
const settings = resolveWindmillBackendSettings();
expect(settings).toEqual({
baseUrl: "http://backend.test",
email: "admin@windmill.dev",
password: "changeme",
workspaceOverride: undefined,
});
expect(Object.keys(settings).sort()).toEqual([
"baseUrl",
"email",
"password",
"workspaceOverride",
]);
});
});