const http = require('http') const checkCombinedTestData = async () => { console.log('šŸ” ęŖ¢ęŸ„ē¶œåˆęø¬č©¦č³‡ę–™ēµę§‹') console.log('=' .repeat(40)) try { // ē²å–ę‰€ęœ‰ęø¬č©¦ēµęžœ const response = await new Promise((resolve, reject) => { const req = http.get('http://localhost:3000/api/admin/test-results', (res) => { let data = '' res.on('data', chunk => data += chunk) res.on('end', () => resolve({ status: res.statusCode, data: data })) }) req.on('error', reject) }) if (response.status === 200) { const data = JSON.parse(response.data) if (data.success) { console.log('āœ… ęˆåŠŸē²å–ęø¬č©¦ēµęžœ') // ę‰¾å‡ŗē¶œåˆęø¬č©¦ēµęžœ const combinedResults = data.data.results.filter(result => result.type === 'combined') console.log(`šŸ“Š ē¶œåˆęø¬č©¦ēµęžœę•øé‡: ${combinedResults.length}`) combinedResults.forEach((result, index) => { console.log(`\nšŸ“‹ 綜合測試 ${index + 1}:`) console.log(` ē”Øęˆ¶: ${result.userName}`) console.log(` åˆ†ę•ø: ${result.score}`) console.log(` å®Œęˆę™‚é–“: ${result.completedAt}`) console.log(` 詳瓰資料:`, JSON.stringify(result.details, null, 2)) }) } else { console.log('āŒ ē²å–č³‡ę–™å¤±ę•—:', data.message) } } else { console.log('āŒ ē²å–č³‡ę–™å¤±ę•—ļ¼Œē‹€ę…‹ē¢¼:', response.status) } } catch (error) { console.error('āŒ ęŖ¢ęŸ„å¤±ę•—:', error.message) } finally { console.log('\nāœ… ē¶œåˆęø¬č©¦č³‡ę–™ęŖ¢ęŸ„å®Œęˆ') } } checkCombinedTestData()