119 lines
5.0 KiB
JavaScript
119 lines
5.0 KiB
JavaScript
/**
|
|
* 測試 AI 評分整合功能
|
|
* 這個腳本會測試從上傳文件到資料庫存儲的完整流程
|
|
*/
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
// 模擬測試資料
|
|
const testData = {
|
|
projectTitle: "測試專案 - AI 評分整合",
|
|
projectDescription: "這是一個測試專案,用於驗證 AI 評分結果是否能正確上傳到資料庫",
|
|
file: {
|
|
name: "test-presentation.pptx",
|
|
size: 1024000, // 1MB
|
|
type: "application/vnd.openxmlformats-officedocument.presentationml.presentation"
|
|
}
|
|
};
|
|
|
|
console.log('🧪 開始測試 AI 評分整合功能...\n');
|
|
|
|
console.log('📋 測試資料:');
|
|
console.log(` 專案標題: ${testData.projectTitle}`);
|
|
console.log(` 專案描述: ${testData.projectDescription}`);
|
|
console.log(` 文件名稱: ${testData.file.name}`);
|
|
console.log(` 文件大小: ${testData.file.size} bytes`);
|
|
console.log(` 文件類型: ${testData.file.type}\n`);
|
|
|
|
console.log('🔄 預期的處理流程:');
|
|
console.log('1. 用戶上傳 PPT 文件');
|
|
console.log('2. 填寫專案標題和描述');
|
|
console.log('3. 點擊「開始 AI 評審」按鈕');
|
|
console.log('4. 系統創建專案記錄 (projects 表)');
|
|
console.log('5. 系統創建文件記錄 (project_files 表)');
|
|
console.log('6. AI 分析 PPT 內容並產生評分結果');
|
|
console.log('7. 系統創建評審記錄 (evaluations 表)');
|
|
console.log('8. 系統創建評分明細 (evaluation_scores 表)');
|
|
console.log('9. 系統創建評語記錄 (evaluation_feedback 表)');
|
|
console.log('10. 更新專案狀態為完成');
|
|
console.log('11. 返回評分結果到前端顯示\n');
|
|
|
|
console.log('📊 預期的資料庫記錄:');
|
|
console.log(' projects 表:');
|
|
console.log(' - id: [自動生成]');
|
|
console.log(' - user_id: 1');
|
|
console.log(' - template_id: [評分標準模板 ID]');
|
|
console.log(' - title: "測試專案 - AI 評分整合"');
|
|
console.log(' - description: "這是一個測試專案..."');
|
|
console.log(' - status: "completed"');
|
|
console.log(' - analysis_started_at: [當前時間]');
|
|
console.log(' - analysis_completed_at: [分析完成時間]\n');
|
|
|
|
console.log(' project_files 表:');
|
|
console.log(' - id: [自動生成]');
|
|
console.log(' - project_id: [專案 ID]');
|
|
console.log(' - original_name: "test-presentation.pptx"');
|
|
console.log(' - file_name: "test-presentation.pptx"');
|
|
console.log(' - file_path: "/uploads/[project_id]/test-presentation.pptx"');
|
|
console.log(' - file_size: 1024000');
|
|
console.log(' - file_type: "pptx"');
|
|
console.log(' - mime_type: "application/vnd.openxmlformats-officedocument.presentationml.presentation"');
|
|
console.log(' - upload_status: "completed"');
|
|
console.log(' - upload_progress: 100\n');
|
|
|
|
console.log(' evaluations 表:');
|
|
console.log(' - id: [自動生成]');
|
|
console.log(' - project_id: [專案 ID]');
|
|
console.log(' - overall_score: [AI 評分總分]');
|
|
console.log(' - max_possible_score: 100');
|
|
console.log(' - grade: [AI 評定等級]');
|
|
console.log(' - analysis_duration: [分析耗時秒數]');
|
|
console.log(' - ai_model_version: "gemini-1.5-flash"');
|
|
console.log(' - status: "completed"');
|
|
console.log(' - error_message: null\n');
|
|
|
|
console.log(' evaluation_scores 表:');
|
|
console.log(' - id: [自動生成]');
|
|
console.log(' - evaluation_id: [評審記錄 ID]');
|
|
console.log(' - criteria_item_id: [評分標準項目 ID]');
|
|
console.log(' - score: [該項得分]');
|
|
console.log(' - max_score: [該項滿分]');
|
|
console.log(' - weight: [該項權重]');
|
|
console.log(' - weighted_score: [加權分數]');
|
|
console.log(' - percentage: [得分百分比]\n');
|
|
|
|
console.log(' evaluation_feedback 表:');
|
|
console.log(' - id: [自動生成]');
|
|
console.log(' - evaluation_id: [評審記錄 ID]');
|
|
console.log(' - criteria_item_id: [評分標準項目 ID 或 null]');
|
|
console.log(' - feedback_type: "overall" | "criteria" | "strength" | "improvement"');
|
|
console.log(' - content: [反饋內容]');
|
|
console.log(' - sort_order: [排序順序]\n');
|
|
|
|
console.log('✅ 測試準備完成!');
|
|
console.log('\n📝 如何執行測試:');
|
|
console.log('1. 確保資料庫連線正常');
|
|
console.log('2. 確保有評分標準模板');
|
|
console.log('3. 啟動應用程式: npm run dev');
|
|
console.log('4. 訪問上傳頁面: http://localhost:3000/upload');
|
|
console.log('5. 上傳一個 PPT 文件');
|
|
console.log('6. 填寫專案資訊');
|
|
console.log('7. 點擊「開始 AI 評審」按鈕');
|
|
console.log('8. 檢查控制台日誌和資料庫記錄');
|
|
console.log('9. 查看結果頁面顯示\n');
|
|
|
|
console.log('🔍 檢查要點:');
|
|
console.log('- 控制台是否顯示完整的處理流程日誌');
|
|
console.log('- 資料庫是否正確創建所有相關記錄');
|
|
console.log('- 前端是否正確顯示評分結果');
|
|
console.log('- 是否有任何錯誤訊息\n');
|
|
|
|
console.log('🎯 成功標準:');
|
|
console.log('- 所有資料庫表都有對應的記錄');
|
|
console.log('- 評分結果正確顯示在前端');
|
|
console.log('- 沒有錯誤或異常');
|
|
console.log('- 處理時間在合理範圍內\n');
|
|
|
|
console.log('🚀 開始測試吧!');
|