實作綜合題型結果與資料庫整合
This commit is contained in:
114
scripts/test-combined-db-integration.js
Normal file
114
scripts/test-combined-db-integration.js
Normal 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()
|
Reference in New Issue
Block a user