| import { afterEach, beforeEach, expect, test } from 'bun:test' |
|
|
| import { saveGlobalConfig } from '../config.js' |
| import { getDefaultMainLoopModelSetting, getUserSpecifiedModelSetting } from './model.js' |
|
|
| const env = { |
| 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, |
| OPENAI_MODEL: process.env.OPENAI_MODEL, |
| } |
|
|
| beforeEach(() => { |
| process.env.CLAUDE_CODE_USE_GITHUB = '1' |
| 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 |
| delete process.env.OPENAI_MODEL |
| saveGlobalConfig(current => ({ |
| ...current, |
| model: ({ bad: true } as unknown) as string, |
| })) |
| }) |
|
|
| afterEach(() => { |
| process.env.CLAUDE_CODE_USE_GITHUB = env.CLAUDE_CODE_USE_GITHUB |
| process.env.CLAUDE_CODE_USE_OPENAI = env.CLAUDE_CODE_USE_OPENAI |
| process.env.CLAUDE_CODE_USE_GEMINI = env.CLAUDE_CODE_USE_GEMINI |
| process.env.CLAUDE_CODE_USE_BEDROCK = env.CLAUDE_CODE_USE_BEDROCK |
| process.env.CLAUDE_CODE_USE_VERTEX = env.CLAUDE_CODE_USE_VERTEX |
| process.env.CLAUDE_CODE_USE_FOUNDRY = env.CLAUDE_CODE_USE_FOUNDRY |
| process.env.OPENAI_MODEL = env.OPENAI_MODEL |
| saveGlobalConfig(current => ({ |
| ...current, |
| model: undefined, |
| })) |
| }) |
|
|
| test('github default model setting ignores non-string saved model', () => { |
| const model = getDefaultMainLoopModelSetting() |
| expect(typeof model).toBe('string') |
| expect(model).not.toBe('[object Object]') |
| expect(model.length).toBeGreaterThan(0) |
| }) |
|
|
| test('user specified model ignores non-string saved model', () => { |
| const model = getUserSpecifiedModelSetting() |
| if (model !== undefined && model !== null) { |
| expect(typeof model).toBe('string') |
| expect(model).not.toBe('[object Object]') |
| } |
| }) |
|
|