fix: clean up deleted provider state correctly (#696)

This commit is contained in:
Lingxuan Zuo
2026-03-27 23:32:56 +08:00
committed by GitHub
Unverified
parent 07f3c310b5
commit 9b56d80d22
8 changed files with 510 additions and 32 deletions

View File

@@ -119,6 +119,38 @@ describe('provider metadata', () => {
expect(shouldShowProviderModelId(siliconflow, true)).toBe(true);
});
it('shows OAuth model overrides only in dev mode and preserves defaults', () => {
const openai = PROVIDER_TYPE_INFO.find((provider) => provider.id === 'openai');
const google = PROVIDER_TYPE_INFO.find((provider) => provider.id === 'google');
const minimax = PROVIDER_TYPE_INFO.find((provider) => provider.id === 'minimax-portal');
const minimaxCn = PROVIDER_TYPE_INFO.find((provider) => provider.id === 'minimax-portal-cn');
const qwen = PROVIDER_TYPE_INFO.find((provider) => provider.id === 'qwen-portal');
expect(openai).toMatchObject({ showModelId: true, showModelIdInDevModeOnly: true, defaultModelId: 'gpt-5.4' });
expect(google).toMatchObject({ showModelId: true, showModelIdInDevModeOnly: true, defaultModelId: 'gemini-3-pro-preview' });
expect(minimax).toMatchObject({ showModelId: true, showModelIdInDevModeOnly: true, defaultModelId: 'MiniMax-M2.7' });
expect(minimaxCn).toMatchObject({ showModelId: true, showModelIdInDevModeOnly: true, defaultModelId: 'MiniMax-M2.7' });
expect(qwen).toMatchObject({ showModelId: true, showModelIdInDevModeOnly: true, defaultModelId: 'coder-model' });
expect(shouldShowProviderModelId(openai, false)).toBe(false);
expect(shouldShowProviderModelId(google, false)).toBe(false);
expect(shouldShowProviderModelId(minimax, false)).toBe(false);
expect(shouldShowProviderModelId(minimaxCn, false)).toBe(false);
expect(shouldShowProviderModelId(qwen, false)).toBe(false);
expect(shouldShowProviderModelId(openai, true)).toBe(true);
expect(shouldShowProviderModelId(google, true)).toBe(true);
expect(shouldShowProviderModelId(minimax, true)).toBe(true);
expect(shouldShowProviderModelId(minimaxCn, true)).toBe(true);
expect(shouldShowProviderModelId(qwen, true)).toBe(true);
expect(resolveProviderModelForSave(openai, ' ', true)).toBe('gpt-5.4');
expect(resolveProviderModelForSave(google, ' ', true)).toBe('gemini-3-pro-preview');
expect(resolveProviderModelForSave(minimax, ' ', true)).toBe('MiniMax-M2.7');
expect(resolveProviderModelForSave(minimaxCn, ' ', true)).toBe('MiniMax-M2.7');
expect(resolveProviderModelForSave(qwen, ' ', true)).toBe('coder-model');
});
it('saves OpenRouter and SiliconFlow model overrides by default', () => {
const openrouter = PROVIDER_TYPE_INFO.find((provider) => provider.id === 'openrouter');
const siliconflow = PROVIDER_TYPE_INFO.find((provider) => provider.id === 'siliconflow');