pet/utils/sse-test.js

142 lines
3.0 KiB
JavaScript

/**
* SSE工具类测试文件
* 用于验证SSE功能是否正常工作
*/
import { createSSERequest, createPetAssistantSSE, SSE_STATUS } from './sse.js'
/**
* 测试基础SSE功能
*/
export function testBasicSSE() {
console.log('开始测试基础SSE功能...')
const testData = {
message: '测试消息',
temperature: 0.7,
maxTokens: 100
}
let receivedChunks = 0
let totalContent = ''
return createSSERequest({
url: `${uni.$u.http.config.baseURL}/pet/user/assistant/stream-ask`,
data: testData,
onChunk: (chunk) => {
receivedChunks++
totalContent = chunk.totalContent
console.log(`接收到第${receivedChunks}个数据块:`, chunk.content)
},
onComplete: (result) => {
console.log('SSE响应完成:', {
totalChunks: receivedChunks,
totalContent: totalContent,
metadata: result.data
})
},
onError: (error) => {
console.error('SSE测试失败:', error)
}
})
}
/**
* 测试宠物助手专用SSE
*/
export function testPetAssistantSSE() {
console.log('开始测试宠物助手SSE功能...')
const testData = {
message: '你好,请介绍一下自己',
temperature: 0.7,
maxTokens: 200
}
let chunkCount = 0
return createPetAssistantSSE(testData, {
onChunk: (chunk) => {
chunkCount++
console.log(`宠物助手SSE - 第${chunkCount}块:`, chunk.content)
},
onComplete: (result) => {
console.log('宠物助手SSE完成:', {
chunks: chunkCount,
message: result.data.message,
isSensitive: result.data.isSensitive,
tokenCount: result.data.tokenCount
})
},
onError: (error) => {
console.error('宠物助手SSE失败:', error)
}
})
}
/**
* 运行所有测试
*/
export async function runAllTests() {
console.log('=== 开始SSE工具类测试 ===')
try {
// 测试基础SSE
console.log('\n1. 测试基础SSE功能')
await testBasicSSE()
// 等待一秒
await new Promise(resolve => setTimeout(resolve, 1000))
// 测试宠物助手SSE
console.log('\n2. 测试宠物助手SSE功能')
await testPetAssistantSSE()
console.log('\n=== SSE工具类测试完成 ===')
return true
} catch (error) {
console.error('SSE测试过程中发生错误:', error)
return false
}
}
/**
* 简单的功能验证
*/
export function validateSSEFunctions() {
console.log('验证SSE工具类函数是否存在...')
const checks = [
{ name: 'createSSERequest', func: createSSERequest },
{ name: 'createPetAssistantSSE', func: createPetAssistantSSE },
{ name: 'SSE_STATUS', obj: SSE_STATUS }
]
let allValid = true
checks.forEach(check => {
if (typeof check.func === 'function' || typeof check.obj === 'object') {
console.log(`${check.name} - 正常`)
} else {
console.error(`${check.name} - 缺失或类型错误`)
allValid = false
}
})
if (allValid) {
console.log('✅ 所有SSE工具类函数验证通过')
} else {
console.error('❌ SSE工具类函数验证失败')
}
return allValid
}
export default {
testBasicSSE,
testPetAssistantSSE,
runAllTests,
validateSSEFunctions
}