36 lines
987 B
TypeScript
36 lines
987 B
TypeScript
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
||
|
||
// We import the module *lazily* inside each test so that we can control the
|
||
// OPENAI_API_KEY env var independently per test case. Node's module cache
|
||
// would otherwise capture the value present during the first import.
|
||
|
||
const ORIGINAL_ENV_KEY = process.env["OPENAI_API_KEY"];
|
||
|
||
beforeEach(() => {
|
||
delete process.env["OPENAI_API_KEY"];
|
||
});
|
||
|
||
afterEach(() => {
|
||
if (ORIGINAL_ENV_KEY !== undefined) {
|
||
process.env["OPENAI_API_KEY"] = ORIGINAL_ENV_KEY;
|
||
} else {
|
||
delete process.env["OPENAI_API_KEY"];
|
||
}
|
||
});
|
||
|
||
describe("config.setApiKey", () => {
|
||
it("overrides the exported OPENAI_API_KEY at runtime", async () => {
|
||
const { setApiKey, OPENAI_API_KEY } = await import(
|
||
"../src/utils/config.js"
|
||
);
|
||
|
||
expect(OPENAI_API_KEY).toBe("");
|
||
|
||
setApiKey("my‑key");
|
||
|
||
const { OPENAI_API_KEY: liveRef } = await import("../src/utils/config.js");
|
||
|
||
expect(liveRef).toBe("my‑key");
|
||
});
|
||
});
|