refactor(runtime): prefer env-backed secrets at runtime

This commit is contained in:
2026-03-30 19:17:32 +02:00
parent 4f5d410b94
commit fed7aa5b61
13 changed files with 532 additions and 71 deletions
@@ -0,0 +1,42 @@
import { afterEach, describe, expect, it, vi } from "vitest";
import { resolveSystemSettingsRuntime } from "../lib/system-settings-runtime.js";
describe("system settings runtime resolution", () => {
afterEach(() => {
vi.unstubAllEnvs();
});
it("prefers OPENAI_API_KEY for direct OpenAI runtime settings", () => {
vi.stubEnv("OPENAI_API_KEY", "env-openai-key");
vi.stubEnv("AZURE_OPENAI_API_KEY", "env-azure-key");
const settings = resolveSystemSettingsRuntime({
aiProvider: "openai",
azureOpenAiApiKey: "db-key",
});
expect(settings.azureOpenAiApiKey).toBe("env-openai-key");
});
it("prefers AZURE_OPENAI_API_KEY for Azure runtime settings", () => {
vi.stubEnv("OPENAI_API_KEY", "env-openai-key");
vi.stubEnv("AZURE_OPENAI_API_KEY", "env-azure-key");
const settings = resolveSystemSettingsRuntime({
aiProvider: "azure",
azureOpenAiApiKey: "db-key",
});
expect(settings.azureOpenAiApiKey).toBe("env-azure-key");
});
it("ignores blank environment overrides", () => {
vi.stubEnv("SMTP_PASSWORD", " ");
const settings = resolveSystemSettingsRuntime({
smtpPassword: "db-password",
});
expect(settings.smtpPassword).toBe("db-password");
});
});