From e3f3f5fbd124634040d94684a2726095011ea6a9 Mon Sep 17 00:00:00 2001 From: Stefan de Vogelaere Date: Tue, 20 Jan 2026 20:23:29 +0100 Subject: [PATCH] test: fix server tests for provider model passthrough behavior - Update model-resolver.test.ts to expect unknown models to pass through unchanged (supports ClaudeCompatibleProvider models like GLM-4.7) - Remove warning expectations for unknown models (valid for providers) - Add missing getCredentials and getGlobalSettings mocks to ideation-service.test.ts for settingsService --- .../tests/unit/lib/model-resolver.test.ts | 21 ++++++++++--------- .../unit/services/ideation-service.test.ts | 5 ++++- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/apps/server/tests/unit/lib/model-resolver.test.ts b/apps/server/tests/unit/lib/model-resolver.test.ts index 8773180d..c1bff78d 100644 --- a/apps/server/tests/unit/lib/model-resolver.test.ts +++ b/apps/server/tests/unit/lib/model-resolver.test.ts @@ -41,13 +41,14 @@ describe('model-resolver.ts', () => { ); }); - it('should treat unknown models as falling back to default', () => { - // Note: Don't include valid Cursor model IDs here (e.g., 'gpt-5.2' is in CURSOR_MODEL_MAP) - const models = ['o1', 'o1-mini', 'o3', 'unknown-model', 'fake-model-123']; + it('should pass through unknown models unchanged (may be provider models)', () => { + // Unknown models now pass through unchanged to support ClaudeCompatibleProvider models + // like GLM-4.7, MiniMax-M2.1, o1, etc. + const models = ['o1', 'o1-mini', 'o3', 'unknown-model', 'fake-model-123', 'GLM-4.7']; models.forEach((model) => { const result = resolveModelString(model); - // Should fall back to default since these aren't supported - expect(result).toBe(DEFAULT_MODELS.claude); + // Should pass through unchanged (could be provider models) + expect(result).toBe(model); }); }); @@ -73,12 +74,12 @@ describe('model-resolver.ts', () => { expect(result).toBe(customDefault); }); - it('should return default for unknown model key', () => { + it('should pass through unknown model key unchanged (no warning)', () => { const result = resolveModelString('unknown-model'); - expect(result).toBe(DEFAULT_MODELS.claude); - expect(consoleSpy.warn).toHaveBeenCalledWith( - expect.stringContaining('Unknown model key "unknown-model"') - ); + // Unknown models pass through unchanged (could be provider models) + expect(result).toBe('unknown-model'); + // No warning - unknown models are valid for providers + expect(consoleSpy.warn).not.toHaveBeenCalled(); }); it('should handle empty string', () => { diff --git a/apps/server/tests/unit/services/ideation-service.test.ts b/apps/server/tests/unit/services/ideation-service.test.ts index 346fe442..6b862fa5 100644 --- a/apps/server/tests/unit/services/ideation-service.test.ts +++ b/apps/server/tests/unit/services/ideation-service.test.ts @@ -63,7 +63,10 @@ describe('IdeationService', () => { } as unknown as EventEmitter; // Create mock settings service - mockSettingsService = {} as SettingsService; + mockSettingsService = { + getCredentials: vi.fn().mockResolvedValue({}), + getGlobalSettings: vi.fn().mockResolvedValue({}), + } as unknown as SettingsService; // Create mock feature loader mockFeatureLoader = {