#!/usr/bin/env node /** * 消息存储测试脚本 * 用于验证消息持久化功能是否正常工作 */ const path = require('path'); const fs = require('fs'); // 模拟 app.getPath('userData') const mockUserData = path.join(process.env.HOME || process.env.USERPROFILE, '.config', 'wecome-openclaw-client'); console.log('='.repeat(60)); console.log('消息存储功能测试'); console.log('='.repeat(60)); // 测试 1: 检查 messageStore.js 是否存在 const messageStorePath = path.join(__dirname, 'electron', 'messageStore.js'); console.log('\n✓ 测试 1: 检查 messageStore.js'); if (fs.existsSync(messageStorePath)) { console.log(' ✅ messageStore.js 存在'); } else { console.log(' ❌ messageStore.js 不存在'); process.exit(1); } // 测试 2: 检查 main.js 是否引入了 messageStore const mainPath = path.join(__dirname, 'electron', 'main.js'); console.log('\n✓ 测试 2: 检查 main.js 是否引入 messageStore'); const mainContent = fs.readFileSync(mainPath, 'utf-8'); if (mainContent.includes("require('./messageStore')")) { console.log(' ✅ main.js 已引入 messageStore'); } else { console.log(' ❌ main.js 未引入 messageStore'); process.exit(1); } // 测试 3: 检查 preload.js 是否暴露了消息 API const preloadPath = path.join(__dirname, 'electron', 'preload.js'); console.log('\n✓ 测试 3: 检查 preload.js 是否暴露消息 API'); const preloadContent = fs.readFileSync(preloadPath, 'utf-8'); const requiredAPIs = [ 'getMessages', 'getSessions', 'searchMessages', 'getMessageStats', 'markMessagesRead', 'exportMessages', 'clearMessages' ]; let allAPIsPresent = true; requiredAPIs.forEach(api => { if (preloadContent.includes(api)) { console.log(` ✅ ${api} 已暴露`); } else { console.log(` ❌ ${api} 未暴露`); allAPIsPresent = false; } }); if (!allAPIsPresent) { process.exit(1); } // 测试 4: 检查 App.js 是否包含消息历史 UI const appPath = path.join(__dirname, 'renderer', 'src', 'App.js'); console.log('\n✓ 测试 4: 检查 App.js 是否包含消息历史 UI'); const appContent = fs.readFileSync(appPath, 'utf-8'); const uiComponents = [ 'showMessageHistory', 'messageStats', '💬 消息历史' ]; let allUIPresent = true; uiComponents.forEach(component => { if (appContent.includes(component)) { console.log(` ✅ ${component} 存在`); } else { console.log(` ❌ ${component} 不存在`); allUIPresent = false; } }); if (!allUIPresent) { process.exit(1); } // 测试 5: 检查消息存储目录 console.log('\n✓ 测试 5: 检查消息存储目录'); const messagesDir = path.join(mockUserData, 'messages'); console.log(` 预期路径:${messagesDir}`); console.log(' ℹ️ 目录将在首次运行时自动创建'); // 测试 6: 检查文档 console.log('\n✓ 测试 6: 检查文档'); const docPath = path.join(__dirname, 'MESSAGE_HISTORY.md'); if (fs.existsSync(docPath)) { console.log(' ✅ MESSAGE_HISTORY.md 存在'); const docContent = fs.readFileSync(docPath, 'utf-8'); console.log(` 📄 文档大小:${docContent.length} 字节`); } else { console.log(' ⚠️ MESSAGE_HISTORY.md 不存在(可选)'); } console.log('\n' + '='.repeat(60)); console.log('✅ 所有测试通过!'); console.log('='.repeat(60)); console.log('\n下一步:'); console.log('1. 安装依赖:cd renderer && npm install'); console.log('2. 启动应用:npm start'); console.log('3. 点击 "💬 消息历史" 按钮查看功能'); console.log('');