Files
goodbuddy/src/main/agent/process-environment.test.ts
T
2026-08-07 10:45:01 +08:00

93 lines
2.7 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import {
buildExplicitProfileRuntimeEnvironment,
buildRuntimeEnvironment
} from './process-environment'
describe('buildRuntimeEnvironment', () => {
it('keeps required runtime values and excludes unrelated parent secrets', () => {
const environment = buildRuntimeEnvironment(
{
GOODBUDDY_RUNTIME_TOKEN: 'scoped-token'
},
{
PATH: 'C:\\Tools',
TEMP: 'C:\\Temp',
ANTHROPIC_API_KEY: 'provider-key',
GOODBUDDY_DELEGATION_TOKEN: 'must-not-leak',
GITHUB_TOKEN: 'must-not-leak',
NODE_OPTIONS: '--require malicious.js'
}
)
expect(environment).toEqual({
PATH: 'C:\\Tools',
TEMP: 'C:\\Temp',
ANTHROPIC_API_KEY: 'provider-key',
GOODBUDDY_RUNTIME_TOKEN: 'scoped-token',
NODE_TLS_REJECT_UNAUTHORIZED: '0'
})
})
it('always propagates intranet TLS compatibility to child runtimes', () => {
const source = {
PATH: '/tools',
NODE_TLS_REJECT_UNAUTHORIZED: '1'
}
expect(buildRuntimeEnvironment({}, source)).toEqual({
PATH: '/tools',
NODE_TLS_REJECT_UNAUTHORIZED: '0'
})
expect(
buildRuntimeEnvironment(
{ NODE_TLS_REJECT_UNAUTHORIZED: '1' },
source
)
).toEqual({
PATH: '/tools',
NODE_TLS_REJECT_UNAUTHORIZED: '0'
})
})
it('isolates an explicit profile from inherited provider and cloud credentials', () => {
const source = {
PATH: '/tools',
ANTHROPIC_API_KEY: 'inherited-anthropic',
OPENAI_API_KEY: 'inherited-openai',
GOOGLE_GENERATIVE_AI_API_KEY: 'inherited-google',
GEMINI_API_KEY: 'inherited-gemini',
GROQ_API_KEY: 'inherited-groq',
AZURE_OPENAI_API_KEY: 'inherited-azure',
AWS_ACCESS_KEY_ID: 'inherited-aws-access',
AWS_SECRET_ACCESS_KEY: 'inherited-aws-secret',
AWS_SESSION_TOKEN: 'inherited-aws-session',
AWS_REGION: 'inherited-aws-region',
AWS_PROFILE: 'inherited-aws-profile',
OPENROUTER_API_KEY: 'inherited-openrouter',
XAI_API_KEY: 'inherited-xai',
MISTRAL_API_KEY: 'inherited-mistral',
COHERE_API_KEY: 'inherited-cohere'
}
expect(
buildExplicitProfileRuntimeEnvironment(
{ GOODBUDDY_RUNTIME_TOKEN: 'scoped-token' },
{ name: 'OPENAI_API_KEY', value: 'selected-key' },
source
)
).toEqual({
PATH: '/tools',
GOODBUDDY_RUNTIME_TOKEN: 'scoped-token',
OPENAI_API_KEY: 'selected-key',
NODE_TLS_REJECT_UNAUTHORIZED: '0'
})
expect(
buildExplicitProfileRuntimeEnvironment({}, undefined, source)
).toEqual({
PATH: '/tools',
NODE_TLS_REJECT_UNAUTHORIZED: '0'
})
})
})