| import { afterEach, expect, test } from 'bun:test' |
|
|
| import { resetModelStringsForTestingOnly } from '../../bootstrap/state.js' |
| import { parseUserSpecifiedModel } from './model.js' |
| import { getModelStrings } from './modelStrings.js' |
|
|
| const originalEnv = { |
| CLAUDE_CODE_USE_GITHUB: process.env.CLAUDE_CODE_USE_GITHUB, |
| CLAUDE_CODE_USE_OPENAI: process.env.CLAUDE_CODE_USE_OPENAI, |
| CLAUDE_CODE_USE_GEMINI: process.env.CLAUDE_CODE_USE_GEMINI, |
| CLAUDE_CODE_USE_BEDROCK: process.env.CLAUDE_CODE_USE_BEDROCK, |
| CLAUDE_CODE_USE_VERTEX: process.env.CLAUDE_CODE_USE_VERTEX, |
| CLAUDE_CODE_USE_FOUNDRY: process.env.CLAUDE_CODE_USE_FOUNDRY, |
| } |
|
|
| function clearProviderFlags(): void { |
| delete process.env.CLAUDE_CODE_USE_GITHUB |
| delete process.env.CLAUDE_CODE_USE_OPENAI |
| delete process.env.CLAUDE_CODE_USE_GEMINI |
| delete process.env.CLAUDE_CODE_USE_BEDROCK |
| delete process.env.CLAUDE_CODE_USE_VERTEX |
| delete process.env.CLAUDE_CODE_USE_FOUNDRY |
| } |
|
|
| afterEach(() => { |
| process.env.CLAUDE_CODE_USE_GITHUB = originalEnv.CLAUDE_CODE_USE_GITHUB |
| process.env.CLAUDE_CODE_USE_OPENAI = originalEnv.CLAUDE_CODE_USE_OPENAI |
| process.env.CLAUDE_CODE_USE_GEMINI = originalEnv.CLAUDE_CODE_USE_GEMINI |
| process.env.CLAUDE_CODE_USE_BEDROCK = originalEnv.CLAUDE_CODE_USE_BEDROCK |
| process.env.CLAUDE_CODE_USE_VERTEX = originalEnv.CLAUDE_CODE_USE_VERTEX |
| process.env.CLAUDE_CODE_USE_FOUNDRY = originalEnv.CLAUDE_CODE_USE_FOUNDRY |
| resetModelStringsForTestingOnly() |
| }) |
|
|
| test('GitHub provider model strings are concrete IDs', () => { |
| clearProviderFlags() |
| process.env.CLAUDE_CODE_USE_GITHUB = '1' |
|
|
| const modelStrings = getModelStrings() |
|
|
| for (const value of Object.values(modelStrings)) { |
| expect(typeof value).toBe('string') |
| expect(value.trim().length).toBeGreaterThan(0) |
| } |
| }) |
|
|
| test('GitHub provider model strings are safe to parse', () => { |
| clearProviderFlags() |
| process.env.CLAUDE_CODE_USE_GITHUB = '1' |
|
|
| const modelStrings = getModelStrings() |
|
|
| expect(() => parseUserSpecifiedModel(modelStrings.sonnet46 as any)).not.toThrow() |
| }) |
|
|