diff --git a/containers/api-proxy/provider-env-constants.js b/containers/api-proxy/provider-env-constants.js index c6aa8053..d22430e8 100644 --- a/containers/api-proxy/provider-env-constants.js +++ b/containers/api-proxy/provider-env-constants.js @@ -3,10 +3,8 @@ /** * Environment variable name constants for the API proxy provider adapters. * - * This is the single source of truth for env var names on the container JS side. * The TypeScript equivalent lives in src/api-proxy-env-constants.ts. - * - * Both files must be kept in sync when adding or renaming env vars. + * Keep both files in sync; src/api-proxy-env-constants-sync.test.ts enforces parity. */ /** Environment variable names for the OpenAI provider adapter. */ diff --git a/src/api-proxy-env-constants-sync.test.ts b/src/api-proxy-env-constants-sync.test.ts new file mode 100644 index 00000000..2d41906a --- /dev/null +++ b/src/api-proxy-env-constants-sync.test.ts @@ -0,0 +1,18 @@ +import { ANTHROPIC_ENV, COPILOT_ENV, GEMINI_ENV, OPENAI_ENV } from './api-proxy-env-constants'; + +// eslint-disable-next-line @typescript-eslint/no-require-imports +const providerEnvConstants = require('../containers/api-proxy/provider-env-constants.js') as { + OPENAI_ENV: typeof OPENAI_ENV; + ANTHROPIC_ENV: typeof ANTHROPIC_ENV; + GEMINI_ENV: typeof GEMINI_ENV; + COPILOT_ENV: typeof COPILOT_ENV; +}; + +describe('API proxy provider env constants', () => { + it('stays in sync between TypeScript host code and JS sidecar code', () => { + expect(providerEnvConstants.OPENAI_ENV).toEqual(OPENAI_ENV); + expect(providerEnvConstants.ANTHROPIC_ENV).toEqual(ANTHROPIC_ENV); + expect(providerEnvConstants.GEMINI_ENV).toEqual(GEMINI_ENV); + expect(providerEnvConstants.COPILOT_ENV).toEqual(COPILOT_ENV); + }); +}); diff --git a/src/api-proxy-env-constants.ts b/src/api-proxy-env-constants.ts index 39909881..e9c3fb72 100644 --- a/src/api-proxy-env-constants.ts +++ b/src/api-proxy-env-constants.ts @@ -1,10 +1,8 @@ /** * Environment variable name constants for the API proxy provider adapters. * - * This is the single source of truth for env var names on the TypeScript host side. * The CommonJS equivalent lives in containers/api-proxy/provider-env-constants.js. - * - * Both files must be kept in sync when adding or renaming env vars. + * Keep both files in sync; src/api-proxy-env-constants-sync.test.ts enforces parity. */ /** Environment variable names for the OpenAI provider adapter. */