151 lines
4.2 KiB
JavaScript
151 lines
4.2 KiB
JavaScript
/**
|
||
* 迷你收银台最终验证测试脚本
|
||
* 验证菜单功能修复是否成功
|
||
*/
|
||
|
||
const fs = require('fs');
|
||
const path = require('path');
|
||
const { execSync } = require('child_process');
|
||
|
||
console.log('=== 迷你收银台最终验证测试 ===');
|
||
|
||
// 1. 检查文件是否存在
|
||
function checkFiles() {
|
||
console.log('\n1. 检查必要文件...');
|
||
|
||
const filesToCheck = [
|
||
'src/renderer/components/Layout.js',
|
||
'src/renderer/App.js',
|
||
'src/renderer/index.html',
|
||
'build/index.html',
|
||
'启动收银台.bat'
|
||
];
|
||
|
||
filesToCheck.forEach(file => {
|
||
const fullPath = path.join(__dirname, file);
|
||
if (fs.existsSync(fullPath)) {
|
||
console.log(` ✅ ${file}`);
|
||
} else {
|
||
console.log(` ❌ ${file}`);
|
||
}
|
||
});
|
||
}
|
||
|
||
// 2. 检查Layout.js中的关键修复
|
||
function checkLayoutFix() {
|
||
console.log('\n2. 检查Layout.js修复...');
|
||
|
||
try {
|
||
const layoutPath = path.join(__dirname, 'src', 'renderer', 'components', 'Layout.js');
|
||
const content = fs.readFileSync(layoutPath, 'utf8');
|
||
|
||
const checks = [
|
||
{ pattern: /console\.log\('菜单点击:', key\)/, desc: '菜单点击日志' },
|
||
{ pattern: /electronNavigate\(key, navigate\)/, desc: 'electronNavigate导航' },
|
||
{ pattern: /window\.location\.hash = key/, desc: 'window.location.hash导航' },
|
||
{ pattern: /window\.location\.reload\(\)/, desc: '页面刷新备选方案' }
|
||
];
|
||
|
||
checks.forEach(check => {
|
||
if (check.pattern.test(content)) {
|
||
console.log(` ✅ ${check.desc}`);
|
||
} else {
|
||
console.log(` ❌ ${check.desc}`);
|
||
}
|
||
});
|
||
} catch (error) {
|
||
console.error(' ❌ 检查Layout.js失败:', error.message);
|
||
}
|
||
}
|
||
|
||
// 3. 检查增强版启动脚本
|
||
function checkStartupScript() {
|
||
console.log('\n3. 检查启动脚本...');
|
||
|
||
try {
|
||
const batPath = path.join(__dirname, '启动收银台.bat');
|
||
const content = fs.readFileSync(batPath, 'utf8');
|
||
|
||
const checks = [
|
||
{ pattern: /ELECTRON_ENABLE_LOGGING=1/, desc: '启用Electron日志' },
|
||
{ pattern: /ELECTRON_FORCE_WINDOW_MENU_BAR=1/, desc: '强制窗口菜单栏' },
|
||
{ pattern: /NODE_ENV=production/, desc: '生产环境设置' },
|
||
{ pattern: /if not exist "build\\index\.html"/, desc: '自动构建检查' }
|
||
];
|
||
|
||
checks.forEach(check => {
|
||
if (check.pattern.test(content)) {
|
||
console.log(` ✅ ${check.desc}`);
|
||
} else {
|
||
console.log(` ❌ ${check.desc}`);
|
||
}
|
||
});
|
||
} catch (error) {
|
||
console.error(' ❌ 检查启动脚本失败:', error.message);
|
||
}
|
||
}
|
||
|
||
// 4. 检查构建文件
|
||
function checkBuild() {
|
||
console.log('\n4. 检查构建文件...');
|
||
|
||
const buildFiles = [
|
||
'build/index.html',
|
||
'build/js/main.js'
|
||
];
|
||
|
||
buildFiles.forEach(file => {
|
||
const fullPath = path.join(__dirname, file);
|
||
if (fs.existsSync(fullPath)) {
|
||
const stats = fs.statSync(fullPath);
|
||
console.log(` ✅ ${file} (${(stats.size / 1024).toFixed(2)} KB)`);
|
||
} else {
|
||
console.log(` ❌ ${file}`);
|
||
}
|
||
});
|
||
}
|
||
|
||
// 5. 检查依赖
|
||
function checkDependencies() {
|
||
console.log('\n5. 检查关键依赖...');
|
||
|
||
try {
|
||
const result = execSync('npm list antd react-router-dom electron', { encoding: 'utf8' });
|
||
console.log(' ✅ 关键依赖已安装');
|
||
} catch (error) {
|
||
console.log(' ⚠️ 检查依赖时出现警告:', error.message);
|
||
}
|
||
}
|
||
|
||
// 6. 显示使用说明
|
||
function showUsage() {
|
||
console.log('\n=== 使用说明 ===');
|
||
console.log('菜单功能修复已完成!');
|
||
console.log('\n现在您可以:');
|
||
console.log('1. 双击 "启动收银台.bat" 启动应用');
|
||
console.log('2. 点击左侧菜单项测试功能');
|
||
console.log('3. 如果仍有问题,请查看MENU_FIX_README.md获取详细信息');
|
||
console.log('\n修复内容:');
|
||
console.log('- 增强了菜单点击处理函数');
|
||
console.log('- 提供了多重导航方案');
|
||
console.log('- 改进了错误处理机制');
|
||
console.log('- 增强了启动脚本');
|
||
}
|
||
|
||
// 主函数
|
||
function main() {
|
||
console.log('开始最终验证测试...\n');
|
||
|
||
checkFiles();
|
||
checkLayoutFix();
|
||
checkStartupScript();
|
||
checkBuild();
|
||
checkDependencies();
|
||
|
||
showUsage();
|
||
|
||
console.log('\n=== 最终验证测试完成 ===');
|
||
}
|
||
|
||
// 执行测试
|
||
main(); |