UNPKG

@lobehub/chat

Version:

Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.

72 lines (61 loc) 2.24 kB
// @vitest-environment node import { ModelProvider } from 'model-bank'; import { beforeEach, describe, expect, it, vi } from 'vitest'; import { testProvider } from '../../providerTestUtils'; import { LobeInfiniAI } from './index'; testProvider({ Runtime: LobeInfiniAI, provider: ModelProvider.InfiniAI, defaultBaseURL: 'https://cloud.infini-ai.com/maas/v1', chatDebugEnv: 'DEBUG_INFINIAI_CHAT_COMPLETION', chatModel: 'gpt-3.5-turbo', invalidErrorType: 'InvalidProviderAPIKey', bizErrorType: 'ProviderBizError', test: { skipAPICall: true, skipErrorHandle: true, }, }); describe('LobeInfiniAI - custom features', () => { let instance: InstanceType<typeof LobeInfiniAI>; beforeEach(() => { instance = new LobeInfiniAI({ apiKey: 'test_api_key' }); vi.spyOn(instance['client'].chat.completions, 'create').mockResolvedValue( new ReadableStream() as any, ); }); describe('handlePayload', () => { it('should add enable_thinking when thinking is enabled', async () => { await instance.chat({ messages: [{ content: 'Hello', role: 'user' }], model: 'deepseek-v3', thinking: { type: 'enabled', budget_tokens: 1000, }, }); const calledPayload = (instance['client'].chat.completions.create as any).mock.calls[0][0]; expect(calledPayload.enable_thinking).toBe(true); }); it('should not add enable_thinking when thinking is disabled', async () => { await instance.chat({ messages: [{ content: 'Hello', role: 'user' }], model: 'deepseek-v3', thinking: { budget_tokens: 1000, type: 'disabled', }, }); const calledPayload = (instance['client'].chat.completions.create as any).mock.calls[0][0]; expect(calledPayload.enable_thinking).toBe(false); }); it('should set enable_thinking to false when thinking is undefined', async () => { await instance.chat({ messages: [{ content: 'Hello', role: 'user' }], model: 'deepseek-v3', }); const calledPayload = (instance['client'].chat.completions.create as any).mock.calls[0][0]; expect(calledPayload.enable_thinking).toBe(false); }); }); });