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.

48 lines (41 loc) 2.11 kB
import { describe, expect, it } from 'vitest'; import { ChatStreamPayload } from '@/types/openai/chat'; import { chainPickEmoji } from '../pickEmoji'; // 描述测试块 describe('chainPickEmoji', () => { // 测试用例:验证函数返回的结构 it('should return a payload with the correct structure and embedded user content', () => { // 用户输入的内容 const userContent = '你是一名星际探索者'; // 预期的返回值结构 const expectedPayload: Partial<ChatStreamPayload> = { messages: [ { content: '你是一名擅长进行概念抽象的设计师与 Emoji 专家,你需要根据角色能力的描述抽象出一个表达物理实体的概念 Emoji 作为角色头像, 格式要求如下:\n输入: {文本作为JSON引用字符串}\n输出: {一个Emoji}', role: 'system', }, { content: `输入: {你是一名文案大师,帮我为一些设计 / 艺术作品起名,名字需要有文学内涵,注重精炼和赋子意境,表达作品的情景氛国,使名称既简洁又富有诗意。}`, role: 'user', }, { content: '✒️', role: 'assistant' }, { content: `输入: {你是一名代码巫师,请将下面的代码转成 ts,不要修改实现。如果原本 js 中没有定义的全局变量,需要补充 declare 的类型声明。}`, role: 'user', }, { content: '🧙‍♂️', role: 'assistant' }, { content: `输入: {你是一名创业计划撰写专家,可以提供包括创意名称、简短的标语、目标用户画像、用户痛点、主要价值主张、销售/营销渠道、收入流、成本结构等计划生成。}`, role: 'user', }, { content: '🚀', role: 'assistant' }, { content: `输入: {${userContent}}`, role: 'user' }, ], }; // 执行函数并获取结果 const result = chainPickEmoji(userContent); // 断言结果是否符合预期 expect(result).toEqual(expectedPayload); }); });