test-model-validate.test.ts
1 import { describe, expect, it } from 'vitest' 2 3 import { resolveTestModelApiPath } from '@/server/api/providers/test-model/validate' 4 5 describe('resolveTestModelApiPath', () => { 6 it('defaults OpenAI provider probes to /responses', () => { 7 expect( 8 resolveTestModelApiPath({ 9 apiHost: 'https://api.openai.com/v1', 10 modelId: 'gpt-5-mini', 11 providerId: 'openai', 12 }), 13 ).toBe('/responses') 14 }) 15 16 it('rewrites OpenAI chat-completions path to /responses', () => { 17 expect( 18 resolveTestModelApiPath({ 19 apiHost: 'https://api.openai.com/v1', 20 apiPath: '/chat/completions', 21 modelId: 'gpt-5-mini', 22 providerId: 'openai', 23 }), 24 ).toBe('/responses') 25 expect( 26 resolveTestModelApiPath({ 27 apiHost: 'https://api.openai.com/v1', 28 apiPath: 'chat/completions', 29 modelId: 'gpt-5-mini', 30 providerId: 'openai', 31 }), 32 ).toBe('/responses') 33 }) 34 35 it('keeps explicit non-chat path for OpenAI provider', () => { 36 expect( 37 resolveTestModelApiPath({ 38 apiHost: 'https://api.openai.com/v1', 39 apiPath: '/responses', 40 modelId: 'gpt-5-mini', 41 providerId: 'openai', 42 }), 43 ).toBe('/responses') 44 }) 45 46 it('defaults non-OpenAI providers to /chat/completions', () => { 47 expect( 48 resolveTestModelApiPath({ 49 apiHost: 'https://router.example.com/v1', 50 modelId: 'router-model', 51 providerId: 'router', 52 }), 53 ).toBe('/chat/completions') 54 }) 55 })