import eimsConfigFactory from "./eims.config"; const REQUIRED = { EIMS_ENABLED: "true", EIMS_CLIENT_ID: "cid", EIMS_CLIENT_SECRET: "secret", EIMS_API_KEY: "apikey", EIMS_TIN: "0000000000", }; const withEnv = (vars: Record, fn: () => void) => { const prior: Record = {}; for (const [key, value] of Object.entries(vars)) { prior[key] = process.env[key]; if (value === undefined) delete process.env[key]; else process.env[key] = value; } try { fn(); } finally { for (const [key, value] of Object.entries(prior)) { if (value === undefined) delete process.env[key]; else process.env[key] = value; } } }; describe("eims.config — private key / certificate resolution", () => { it("unescapes a literal \\n when the PEM was pasted without real newlines", () => { withEnv( { ...REQUIRED, EIMS_PRIVATE_KEY: "line1\\nline2", EIMS_CERTIFICATE_PATH: "/dev/null" }, () => { expect(eimsConfigFactory().privateKeyPem).toBe("line1\nline2"); }, ); }); it("leaves a PEM with real newlines untouched", () => { withEnv( { ...REQUIRED, EIMS_PRIVATE_KEY: "line1\nline2", EIMS_CERTIFICATE_PATH: "/dev/null" }, () => { expect(eimsConfigFactory().privateKeyPem).toBe("line1\nline2"); }, ); }); it("throws naming all three key/cert options when none are set", () => { withEnv( { ...REQUIRED, EIMS_PRIVATE_KEY_PATH: undefined, EIMS_PRIVATE_KEY_BASE64: undefined, EIMS_PRIVATE_KEY: undefined, EIMS_CERTIFICATE_PATH: "/dev/null", }, () => { expect(() => eimsConfigFactory()).toThrow( /EIMS_PRIVATE_KEY_PATH or EIMS_PRIVATE_KEY_BASE64 or EIMS_PRIVATE_KEY/, ); }, ); }); it("is satisfied by any single one of the three key options", () => { withEnv( { ...REQUIRED, EIMS_PRIVATE_KEY: "x", EIMS_CERTIFICATE_PATH: "/dev/null" }, () => { expect(() => eimsConfigFactory()).not.toThrow(); }, ); }); });