99 lines
3.3 KiB
TypeScript
99 lines
3.3 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
|
|
import { applyProviderRuntimeEnv } from './providerRuntimeEnv';
|
|
|
|
describe('applyProviderRuntimeEnv', () => {
|
|
it('preserves Bedrock as an Anthropic runtime backend', () => {
|
|
const env: NodeJS.ProcessEnv = {
|
|
CLAUDE_CODE_USE_BEDROCK: '1',
|
|
AWS_PROFILE: 'cc',
|
|
AWS_REGION: 'us-east-1',
|
|
};
|
|
|
|
applyProviderRuntimeEnv(env, 'anthropic');
|
|
|
|
expect(env.CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST).toBe('1');
|
|
expect(env.CLAUDE_CODE_ENTRY_PROVIDER).toBe('bedrock');
|
|
expect(env.CLAUDE_CODE_USE_BEDROCK).toBe('1');
|
|
expect(env.CLAUDE_CODE_USE_VERTEX).toBeUndefined();
|
|
expect(env.CLAUDE_CODE_USE_FOUNDRY).toBeUndefined();
|
|
expect(env.AWS_PROFILE).toBe('cc');
|
|
expect(env.AWS_REGION).toBe('us-east-1');
|
|
});
|
|
|
|
it('preserves Vertex as an Anthropic runtime backend', () => {
|
|
const env: NodeJS.ProcessEnv = {
|
|
CLAUDE_CODE_USE_VERTEX: 'true',
|
|
GOOGLE_CLOUD_PROJECT: 'project-1',
|
|
};
|
|
|
|
applyProviderRuntimeEnv(env, 'anthropic');
|
|
|
|
expect(env.CLAUDE_CODE_ENTRY_PROVIDER).toBe('vertex');
|
|
expect(env.CLAUDE_CODE_USE_VERTEX).toBe('1');
|
|
expect(env.CLAUDE_CODE_USE_BEDROCK).toBeUndefined();
|
|
expect(env.GOOGLE_CLOUD_PROJECT).toBe('project-1');
|
|
});
|
|
|
|
it('preserves Claude Platform on AWS as an Anthropic runtime backend', () => {
|
|
const env: NodeJS.ProcessEnv = {
|
|
ANTHROPIC_AWS_WORKSPACE_ID: 'wrkspc_123',
|
|
AWS_PROFILE: 'cc',
|
|
AWS_REGION: 'us-west-2',
|
|
};
|
|
|
|
applyProviderRuntimeEnv(env, 'anthropic');
|
|
|
|
expect(env.CLAUDE_CODE_ENTRY_PROVIDER).toBe('claude-platform-aws');
|
|
expect(env.ANTHROPIC_AWS_WORKSPACE_ID).toBe('wrkspc_123');
|
|
expect(env.CLAUDE_CODE_USE_BEDROCK).toBeUndefined();
|
|
expect(env.CLAUDE_CODE_USE_VERTEX).toBeUndefined();
|
|
expect(env.CLAUDE_CODE_USE_FOUNDRY).toBeUndefined();
|
|
expect(env.AWS_PROFILE).toBe('cc');
|
|
expect(env.AWS_REGION).toBe('us-west-2');
|
|
});
|
|
|
|
it('does not infer Claude Platform on AWS from AWS profile and region alone', () => {
|
|
const env: NodeJS.ProcessEnv = {
|
|
AWS_PROFILE: 'cc',
|
|
AWS_REGION: 'us-west-2',
|
|
};
|
|
|
|
applyProviderRuntimeEnv(env, 'anthropic');
|
|
|
|
expect(env.CLAUDE_CODE_ENTRY_PROVIDER).toBe('anthropic');
|
|
expect(env.CLAUDE_CODE_USE_BEDROCK).toBeUndefined();
|
|
expect(env.AWS_PROFILE).toBe('cc');
|
|
expect(env.AWS_REGION).toBe('us-west-2');
|
|
});
|
|
|
|
it('keeps Bedrock ahead of Claude Platform on AWS when both are configured', () => {
|
|
const env: NodeJS.ProcessEnv = {
|
|
CLAUDE_CODE_USE_BEDROCK: '1',
|
|
ANTHROPIC_AWS_WORKSPACE_ID: 'wrkspc_123',
|
|
AWS_PROFILE: 'cc',
|
|
AWS_REGION: 'us-east-1',
|
|
};
|
|
|
|
applyProviderRuntimeEnv(env, 'anthropic');
|
|
|
|
expect(env.CLAUDE_CODE_ENTRY_PROVIDER).toBe('bedrock');
|
|
expect(env.CLAUDE_CODE_USE_BEDROCK).toBe('1');
|
|
expect(env.ANTHROPIC_AWS_WORKSPACE_ID).toBe('wrkspc_123');
|
|
});
|
|
|
|
it('still strips Anthropic backend routing when Codex is selected', () => {
|
|
const env: NodeJS.ProcessEnv = {
|
|
CLAUDE_CODE_USE_BEDROCK: '1',
|
|
ANTHROPIC_AWS_WORKSPACE_ID: 'wrkspc_123',
|
|
AWS_PROFILE: 'cc',
|
|
};
|
|
|
|
applyProviderRuntimeEnv(env, 'codex');
|
|
|
|
expect(env.CLAUDE_CODE_ENTRY_PROVIDER).toBe('codex');
|
|
expect(env.CLAUDE_CODE_USE_BEDROCK).toBeUndefined();
|
|
expect(env.ANTHROPIC_AWS_WORKSPACE_ID).toBe('wrkspc_123');
|
|
expect(env.AWS_PROFILE).toBe('cc');
|
|
});
|
|
});
|