Files
CapaKraken/packages/api/src/__tests__/system-settings-runtime.test.ts
T

66 lines
1.9 KiB
TypeScript

import { afterEach, describe, expect, it, vi } from "vitest";
import { getRuntimeSecretStatuses, 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");
});
it("reports active source and legacy DB presence separately", () => {
vi.stubEnv("OPENAI_API_KEY", "env-openai-key");
const statuses = getRuntimeSecretStatuses({
aiProvider: "openai",
azureOpenAiApiKey: "db-key",
smtpPassword: "db-password",
});
expect(statuses.azureOpenAiApiKey).toEqual({
configured: true,
activeSource: "environment",
hasStoredValue: true,
envVarNames: ["OPENAI_API_KEY", "AZURE_OPENAI_API_KEY"],
});
expect(statuses.smtpPassword).toEqual({
configured: true,
activeSource: "database",
hasStoredValue: true,
envVarNames: ["SMTP_PASSWORD"],
});
});
});