實作綜合題型結果與資料庫整合

This commit is contained in:
2025-09-29 17:24:31 +08:00
parent a3b46b4430
commit f6610013ef
21 changed files with 1341 additions and 92 deletions

View File

@@ -0,0 +1,114 @@
const https = require('https')
const http = require('http')
const testCombinedDBIntegration = async () => {
console.log('🧪 測試綜合測試結果資料庫整合功能')
console.log('=' .repeat(50))
const userId = 'user-1759073326705-m06y3wacd'
try {
// 1. 測試綜合測試結果上傳 API
console.log('\n📊 1. 測試綜合測試結果上傳 API...')
const testData = {
userId: userId,
logicScore: 10,
creativityScore: 78,
overallScore: 48,
level: '待提升',
description: '綜合能力有待提升,建議系統性訓練邏輯思維和創意能力',
logicBreakdown: {
correct: 1,
total: 10,
answers: { 0: 'A', 1: 'B', 2: 'C' }
},
creativityBreakdown: {
total: 70,
maxScore: 90,
answers: { 0: 5, 1: 4, 2: 3 }
},
balanceScore: 66,
completedAt: new Date().toISOString().replace('Z', '').replace('T', ' ')
}
console.log('測試數據:', JSON.stringify(testData, null, 2))
const uploadResponse = await new Promise((resolve, reject) => {
const req = http.request({
hostname: 'localhost',
port: 3000,
path: '/api/test-results/combined',
method: 'POST',
headers: {
'Content-Type': 'application/json',
}
}, (res) => {
let data = ''
res.on('data', chunk => data += chunk)
res.on('end', () => resolve({ status: res.statusCode, data }))
})
req.on('error', reject)
req.write(JSON.stringify(testData))
req.end()
})
console.log('📊 上傳響應狀態:', uploadResponse.status)
if (uploadResponse.status === 200) {
const uploadResult = JSON.parse(uploadResponse.data)
console.log('✅ 上傳成功!')
console.log('📡 響應內容:', JSON.stringify(uploadResult, null, 2))
if (uploadResult.success) {
console.log('測試結果ID:', uploadResult.data.testResult.id)
}
} else {
console.log('❌ 上傳失敗,狀態碼:', uploadResponse.status)
console.log('響應內容:', uploadResponse.data)
}
// 2. 測試綜合測試結果獲取 API
console.log('\n📊 2. 測試綜合測試結果獲取 API...')
const getResponse = await new Promise((resolve, reject) => {
const req = http.get(`http://localhost:3000/api/test-results/combined?userId=${userId}`, (res) => {
let data = ''
res.on('data', chunk => data += chunk)
res.on('end', () => resolve({ status: res.statusCode, data }))
})
req.on('error', reject)
})
console.log('📊 獲取響應狀態:', getResponse.status)
if (getResponse.status === 200) {
const getResult = JSON.parse(getResponse.data)
console.log('✅ 獲取成功!')
console.log('📡 響應內容:', JSON.stringify(getResult, null, 2))
if (getResult.success && getResult.data.length > 0) {
console.log(`找到 ${getResult.data.length} 筆綜合測試結果`)
getResult.data.forEach((result, index) => {
console.log(`\n結果 ${index + 1}:`)
console.log(` ID: ${result.id}`)
console.log(` 邏輯分數: ${result.logic_score}`)
console.log(` 創意分數: ${result.creativity_score}`)
console.log(` 總分: ${result.overall_score}`)
console.log(` 等級: ${result.level}`)
console.log(` 完成時間: ${result.completed_at}`)
})
}
} else {
console.log('❌ 獲取失敗,狀態碼:', getResponse.status)
console.log('響應內容:', getResponse.data)
}
} catch (error) {
console.error('❌ 測試失敗:', error.message)
} finally {
console.log('\n✅ 綜合測試結果資料庫整合功能測試完成')
}
}
testCombinedDBIntegration()