[codex] fix profile scoped model selection (#881)

* fix profile scoped model selection

* test profile scoped provider refresh
This commit is contained in:
ekko
2026-05-20 18:26:01 +08:00
committed by GitHub
parent cd77e5ba2e
commit 40109e9c42
18 changed files with 119 additions and 26 deletions
+22 -3
View File
@@ -4,6 +4,7 @@ import { createPinia, setActivePinia } from 'pinia'
const mockSystemApi = vi.hoisted(() => ({
fetchAvailableModels: vi.fn(),
fetchAvailableModelsForProfile: vi.fn(),
updateDefaultModel: vi.fn(),
addCustomProvider: vi.fn(),
removeCustomProvider: vi.fn(),
@@ -36,7 +37,7 @@ describe('Models Store', () => {
},
},
]
mockSystemApi.fetchAvailableModels.mockResolvedValue({
const availableModelsResponse = {
default: 'deepseek-v4-flash',
default_provider: 'deepseek',
groups: visibleGroups,
@@ -44,7 +45,18 @@ describe('Models Store', () => {
model_visibility: {
deepseek: { mode: 'include', models: ['deepseek-v4-flash', 'deepseek-v4-pro'] },
},
})
profiles: [
{
profile: 'default',
default: 'deepseek-v4-flash',
default_provider: 'deepseek',
groups: visibleGroups,
},
],
}
mockSystemApi.fetchAvailableModelsForProfile.mockResolvedValue(availableModelsResponse)
mockSystemApi.fetchAvailableModels.mockResolvedValue(availableModelsResponse)
mockSystemApi.addCustomProvider.mockResolvedValue(undefined)
const appStore = useAppStore()
appStore.modelGroups = [
@@ -59,8 +71,15 @@ describe('Models Store', () => {
]
const modelsStore = useModelsStore()
await modelsStore.fetchProviders()
await modelsStore.addProvider({
name: 'deepseek',
base_url: 'https://api.deepseek.com/v1',
api_key: 'sk-test',
model: 'deepseek-v4-flash',
})
expect(mockSystemApi.fetchAvailableModelsForProfile).toHaveBeenCalledWith('default')
expect(mockSystemApi.fetchAvailableModels).toHaveBeenCalled()
expect(modelsStore.providers[0].models).toEqual(['deepseek-v4-flash', 'deepseek-v4-pro'])
expect(appStore.modelGroups[0].models).toEqual(['deepseek-v4-flash', 'deepseek-v4-pro'])
expect(appStore.modelGroups[0].available_models).toEqual(['deepseek-v4-flash', 'deepseek-v4-pro'])