115 lines
3.8 KiB
JavaScript
115 lines
3.8 KiB
JavaScript
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()
|