mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-03 00:14:28 -07:00
fix(acp) refactor(core,cli): centralize model discovery logic in ModelConfigService (#24392)
This commit is contained in:
@@ -1018,4 +1018,41 @@ describe('ModelConfigService', () => {
|
||||
expect(retry.generateContentConfig.temperature).toBe(1.0);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getAvailableModelOptions', () => {
|
||||
it('should filter out Pro models when hasAccessToProModel is false', () => {
|
||||
const config: ModelConfigServiceConfig = {
|
||||
modelDefinitions: {
|
||||
'gemini-3-pro': { isVisible: true, tier: 'pro' },
|
||||
'gemini-3-flash': { isVisible: true, tier: 'flash' },
|
||||
},
|
||||
};
|
||||
const service = new ModelConfigService(config);
|
||||
const options = service.getAvailableModelOptions({
|
||||
hasAccessToProModel: false,
|
||||
});
|
||||
|
||||
expect(options.map((o) => o.modelId)).not.toContain('gemini-3-pro');
|
||||
expect(options.map((o) => o.modelId)).toContain('gemini-3-flash');
|
||||
});
|
||||
|
||||
it('should include Pro models when hasAccessToProModel is true or undefined', () => {
|
||||
const config: ModelConfigServiceConfig = {
|
||||
modelDefinitions: {
|
||||
'gemini-3-pro': { isVisible: true, tier: 'pro' },
|
||||
},
|
||||
};
|
||||
const service = new ModelConfigService(config);
|
||||
|
||||
const optionsWithTrue = service.getAvailableModelOptions({
|
||||
hasAccessToProModel: true,
|
||||
});
|
||||
expect(optionsWithTrue.map((o) => o.modelId)).toContain('gemini-3-pro');
|
||||
|
||||
const optionsWithUndefined = service.getAvailableModelOptions({});
|
||||
expect(optionsWithUndefined.map((o) => o.modelId)).toContain(
|
||||
'gemini-3-pro',
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user