72 lines
2.2 KiB
JavaScript
72 lines
2.2 KiB
JavaScript
// 測試創意測試流程
|
|
const mysql = require('mysql2/promise')
|
|
|
|
async function testCreativeFlow() {
|
|
const config = {
|
|
host: process.env.DB_HOST || 'mysql.theaken.com',
|
|
port: parseInt(process.env.DB_PORT || '33306'),
|
|
user: process.env.DB_USER || 'hr_assessment',
|
|
password: process.env.DB_PASSWORD || 'QFOts8FlibiI',
|
|
database: process.env.DB_NAME || 'db_hr_assessment',
|
|
}
|
|
|
|
console.log('🧪 測試創意測試流程')
|
|
console.log('=' .repeat(50))
|
|
|
|
try {
|
|
const connection = await mysql.createConnection(config)
|
|
|
|
// 1. 檢查資料庫中的題目
|
|
const [questions] = await connection.execute('SELECT * FROM creative_questions ORDER BY id')
|
|
console.log(`✅ 資料庫中有 ${questions.length} 道題目`)
|
|
|
|
// 2. 模擬 API 回應
|
|
const apiResponse = {
|
|
success: true,
|
|
questions: questions
|
|
}
|
|
console.log('✅ API 回應格式正確')
|
|
|
|
// 3. 測試分數計算邏輯
|
|
const mockAnswers = {
|
|
0: 5, // 一般題目,選擇 5
|
|
1: 5, // 反向題目,選擇 5
|
|
2: 1, // 一般題目,選擇 1
|
|
3: 1 // 反向題目,選擇 1
|
|
}
|
|
|
|
let totalScore = 0
|
|
questions.slice(0, 4).forEach((question, index) => {
|
|
const answer = mockAnswers[index] || 1
|
|
const score = question.is_reverse ? 6 - answer : answer
|
|
totalScore += score
|
|
|
|
console.log(`題目 ${index + 1}: ${question.is_reverse ? '反向' : '一般'} - 選擇${answer} → 得分${score}`)
|
|
})
|
|
|
|
const maxScore = 4 * 5
|
|
const percentage = Math.round((totalScore / maxScore) * 100)
|
|
|
|
console.log(`\n📊 測試結果: ${totalScore}/${maxScore} (${percentage}%)`)
|
|
|
|
// 4. 檢查題目類別分布
|
|
const categoryCount = {}
|
|
questions.forEach(q => {
|
|
categoryCount[q.category] = (categoryCount[q.category] || 0) + 1
|
|
})
|
|
|
|
console.log('\n📋 題目類別分布:')
|
|
Object.entries(categoryCount).forEach(([category, count]) => {
|
|
console.log(`- ${category}: ${count} 題`)
|
|
})
|
|
|
|
await connection.end()
|
|
console.log('\n✅ 創意測試流程測試完成')
|
|
|
|
} catch (error) {
|
|
console.error('❌ 測試失敗:', error.message)
|
|
}
|
|
}
|
|
|
|
testCreativeFlow()
|