agent-ecosystem/test/features/codex-account/main/CodexAccountEnvBuilder.test.ts

64 lines
1.9 KiB
TypeScript

// @vitest-environment node
import { describe, expect, it } from 'vitest';
import { CodexAccountEnvBuilder } from '@features/codex-account/main/infrastructure/CodexAccountEnvBuilder';
describe('CodexAccountEnvBuilder', () => {
it('strips provider-routing flags and API keys from the control-plane env', () => {
const builder = new CodexAccountEnvBuilder();
const env = builder.buildControlPlaneEnv({
env: {
HOME: '/Users/tester',
USERPROFILE: '/Users/tester',
OPENAI_API_KEY: 'openai-key',
CODEX_API_KEY: 'codex-key',
CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST: '1',
CLAUDE_CODE_CODEX_BACKEND: 'codex-native',
},
shellEnv: {
PATH: '/usr/local/bin',
},
});
expect(env.HOME).toBe('/Users/tester');
expect(env.USERPROFILE).toBe('/Users/tester');
expect(env.PATH).toBe('/usr/local/bin');
expect(env.OPENAI_API_KEY).toBeUndefined();
expect(env.CODEX_API_KEY).toBeUndefined();
expect(env.CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST).toBeUndefined();
expect(env.CLAUDE_CODE_CODEX_BACKEND).toBeUndefined();
});
it('removes API keys from execution env when ChatGPT mode is selected', () => {
const builder = new CodexAccountEnvBuilder();
const env = builder.applyExecutionAuthPolicy(
{
OPENAI_API_KEY: 'openai-key',
CODEX_API_KEY: 'codex-key',
},
{
effectiveAuthMode: 'chatgpt',
}
);
expect(env.OPENAI_API_KEY).toBeUndefined();
expect(env.CODEX_API_KEY).toBeUndefined();
});
it('injects both OPENAI_API_KEY and CODEX_API_KEY in API-key mode', () => {
const builder = new CodexAccountEnvBuilder();
const env = builder.applyExecutionAuthPolicy(
{},
{
effectiveAuthMode: 'api_key',
apiKeyValue: 'stored-key',
}
);
expect(env.OPENAI_API_KEY).toBe('stored-key');
expect(env.CODEX_API_KEY).toBe('stored-key');
});
});