feat: initial release v0.3.0
This commit is contained in:
58
tests/unit/model-gateway/llm.test.ts
Normal file
58
tests/unit/model-gateway/llm.test.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
|
||||
const chatCompletionMock = vi.hoisted(() => vi.fn(async () => ({ id: 'text-completion' })))
|
||||
const chatCompletionWithVisionMock = vi.hoisted(() => vi.fn(async () => ({ id: 'vision-completion' })))
|
||||
|
||||
vi.mock('@/lib/llm-client', () => ({
|
||||
chatCompletion: chatCompletionMock,
|
||||
chatCompletionWithVision: chatCompletionWithVisionMock,
|
||||
}))
|
||||
|
||||
import {
|
||||
runModelGatewayTextCompletion,
|
||||
runModelGatewayVisionCompletion,
|
||||
} from '@/lib/model-gateway/llm'
|
||||
|
||||
describe('model-gateway llm wrappers', () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks()
|
||||
})
|
||||
|
||||
it('delegates text completion to llm-client chatCompletion', async () => {
|
||||
const result = await runModelGatewayTextCompletion({
|
||||
userId: 'user-1',
|
||||
model: 'openai-compatible::gpt-image-1',
|
||||
messages: [{ role: 'user', content: 'hello' }],
|
||||
options: { temperature: 0.2 },
|
||||
})
|
||||
|
||||
expect(chatCompletionMock).toHaveBeenCalledTimes(1)
|
||||
expect(chatCompletionMock).toHaveBeenCalledWith(
|
||||
'user-1',
|
||||
'openai-compatible::gpt-image-1',
|
||||
[{ role: 'user', content: 'hello' }],
|
||||
{ temperature: 0.2 },
|
||||
)
|
||||
expect(result).toEqual({ id: 'text-completion' })
|
||||
})
|
||||
|
||||
it('delegates vision completion to llm-client chatCompletionWithVision', async () => {
|
||||
const result = await runModelGatewayVisionCompletion({
|
||||
userId: 'user-1',
|
||||
model: 'google::gemini-3-pro',
|
||||
prompt: 'analyze image',
|
||||
imageUrls: ['https://example.com/a.png'],
|
||||
options: { temperature: 0.4 },
|
||||
})
|
||||
|
||||
expect(chatCompletionWithVisionMock).toHaveBeenCalledTimes(1)
|
||||
expect(chatCompletionWithVisionMock).toHaveBeenCalledWith(
|
||||
'user-1',
|
||||
'google::gemini-3-pro',
|
||||
'analyze image',
|
||||
['https://example.com/a.png'],
|
||||
{ temperature: 0.4 },
|
||||
)
|
||||
expect(result).toEqual({ id: 'vision-completion' })
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user