fix(core): Allow model to be set from settings.json (#5527)

This commit is contained in:
Richie Foreman
2025-08-04 16:41:58 -04:00
committed by GitHub
parent 48fa6f84c8
commit fb6d9cbd36
3 changed files with 66 additions and 2 deletions

View File

@@ -917,6 +917,68 @@ describe('loadCliConfig extensions', () => {
});
});
describe('loadCliConfig model selection', () => {
it('selects a model from settings.json if provided', async () => {
process.argv = ['node', 'script.js'];
const argv = await parseArguments();
const config = await loadCliConfig(
{
model: 'gemini-9001-ultra',
},
[],
'test-session',
argv,
);
expect(config.getModel()).toBe('gemini-9001-ultra');
});
it('uses the default gemini model if nothing is set', async () => {
process.argv = ['node', 'script.js']; // No model set.
const argv = await parseArguments();
const config = await loadCliConfig(
{
// No model set.
},
[],
'test-session',
argv,
);
expect(config.getModel()).toBe('gemini-2.5-pro');
});
it('always prefers model from argvs', async () => {
process.argv = ['node', 'script.js', '--model', 'gemini-8675309-ultra'];
const argv = await parseArguments();
const config = await loadCliConfig(
{
model: 'gemini-9001-ultra',
},
[],
'test-session',
argv,
);
expect(config.getModel()).toBe('gemini-8675309-ultra');
});
it('selects the model from argvs if provided', async () => {
process.argv = ['node', 'script.js', '--model', 'gemini-8675309-ultra'];
const argv = await parseArguments();
const config = await loadCliConfig(
{
// No model provided via settings.
},
[],
'test-session',
argv,
);
expect(config.getModel()).toBe('gemini-8675309-ultra');
});
});
describe('loadCliConfig ideModeFeature', () => {
const originalArgv = process.argv;
const originalEnv = { ...process.env };