add electron e2e harness and regression coverage (#697)

This commit is contained in:
Lingxuan Zuo
2026-03-28 15:34:20 +08:00
committed by GitHub
Unverified
parent 514a6c4112
commit 2668082809
22 changed files with 535 additions and 78 deletions

View File

@@ -100,7 +100,7 @@ describe('provider metadata', () => {
);
});
it('exposes OpenRouter and SiliconFlow model overrides by default', () => {
it('exposes OpenRouter model overrides by default and gates SiliconFlow behind dev mode', () => {
const openrouter = PROVIDER_TYPE_INFO.find((provider) => provider.id === 'openrouter');
const siliconflow = PROVIDER_TYPE_INFO.find((provider) => provider.id === 'siliconflow');
@@ -110,11 +110,12 @@ describe('provider metadata', () => {
});
expect(siliconflow).toMatchObject({
showModelId: true,
showModelIdInDevModeOnly: true,
defaultModelId: 'deepseek-ai/DeepSeek-V3',
});
expect(shouldShowProviderModelId(openrouter, false)).toBe(true);
expect(shouldShowProviderModelId(siliconflow, false)).toBe(true);
expect(shouldShowProviderModelId(siliconflow, false)).toBe(false);
expect(shouldShowProviderModelId(openrouter, true)).toBe(true);
expect(shouldShowProviderModelId(siliconflow, true)).toBe(true);
});
@@ -151,19 +152,20 @@ describe('provider metadata', () => {
expect(resolveProviderModelForSave(qwen, ' ', true)).toBe('coder-model');
});
it('saves OpenRouter and SiliconFlow model overrides by default', () => {
it('saves OpenRouter model overrides by default and SiliconFlow only in dev mode', () => {
const openrouter = PROVIDER_TYPE_INFO.find((provider) => provider.id === 'openrouter');
const siliconflow = PROVIDER_TYPE_INFO.find((provider) => provider.id === 'siliconflow');
const ark = PROVIDER_TYPE_INFO.find((provider) => provider.id === 'ark');
expect(resolveProviderModelForSave(openrouter, 'openai/gpt-5', false)).toBe('openai/gpt-5');
expect(resolveProviderModelForSave(siliconflow, 'Qwen/Qwen3-Coder-480B-A35B-Instruct', false)).toBe('Qwen/Qwen3-Coder-480B-A35B-Instruct');
expect(resolveProviderModelForSave(siliconflow, 'Qwen/Qwen3-Coder-480B-A35B-Instruct', false)).toBeUndefined();
expect(resolveProviderModelForSave(openrouter, 'openai/gpt-5', true)).toBe('openai/gpt-5');
expect(resolveProviderModelForSave(siliconflow, 'Qwen/Qwen3-Coder-480B-A35B-Instruct', true)).toBe('Qwen/Qwen3-Coder-480B-A35B-Instruct');
expect(resolveProviderModelForSave(openrouter, ' ', false)).toBe('openai/gpt-5.4');
expect(resolveProviderModelForSave(openrouter, ' ', true)).toBe('openai/gpt-5.4');
expect(resolveProviderModelForSave(siliconflow, ' ', false)).toBeUndefined();
expect(resolveProviderModelForSave(siliconflow, ' ', true)).toBe('deepseek-ai/DeepSeek-V3');
expect(resolveProviderModelForSave(ark, ' ep-custom-model ', false)).toBe('ep-custom-model');
});