File size: 1,920 Bytes
2c2dc59 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | import { describe, expect, test } from 'bun:test'
import { ensureSourceRuntimeGlobals } from './sourceBootstrap.js'
function restoreEnv(name: string, value: string | undefined): void {
if (value === undefined) {
delete process.env[name]
} else {
process.env[name] = value
}
}
describe('ensureSourceRuntimeGlobals', () => {
test('defines source MACRO globals needed by unbundled Claude source', () => {
ensureSourceRuntimeGlobals()
const macro = (globalThis as unknown as { MACRO?: { VERSION?: string } }).MACRO
expect(macro?.VERSION).toBeTruthy()
})
test('maps generic local gateway env names to Claude source env names', () => {
const oldApiKey = process.env.ANTHROPIC_API_KEY
const oldBaseUrl = process.env.ANTHROPIC_BASE_URL
const oldSonnet = process.env.ANTHROPIC_DEFAULT_SONNET_MODEL
const oldOpus = process.env.ANTHROPIC_DEFAULT_OPUS_MODEL
try {
delete process.env.ANTHROPIC_API_KEY
delete process.env.ANTHROPIC_BASE_URL
delete process.env.ANTHROPIC_DEFAULT_SONNET_MODEL
delete process.env.ANTHROPIC_DEFAULT_OPUS_MODEL
process.env.API_KEY = 'test-key'
process.env.BASE_URL = 'https://example.invalid'
process.env.MODEL_NAME = 'test-model'
ensureSourceRuntimeGlobals()
expect(process.env.ANTHROPIC_API_KEY).toBe('test-key')
expect(process.env.ANTHROPIC_BASE_URL).toBe('https://example.invalid')
expect(process.env.ANTHROPIC_DEFAULT_SONNET_MODEL).toBe('test-model')
expect(process.env.ANTHROPIC_DEFAULT_OPUS_MODEL).toBe('test-model')
} finally {
restoreEnv('ANTHROPIC_API_KEY', oldApiKey)
restoreEnv('ANTHROPIC_BASE_URL', oldBaseUrl)
restoreEnv('ANTHROPIC_DEFAULT_SONNET_MODEL', oldSonnet)
restoreEnv('ANTHROPIC_DEFAULT_OPUS_MODEL', oldOpus)
delete process.env.API_KEY
delete process.env.BASE_URL
delete process.env.MODEL_NAME
}
})
})
|