Files
hr-assessment-system/scripts/test-creative-flow.js
2025-09-29 00:50:47 +08:00

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()