/ tests / test-model-validate.test.ts
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  })