66 lines
1.9 KiB
TypeScript
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"],
|
|
});
|
|
});
|
|
});
|