132 lines
4.2 KiB
JavaScript
132 lines
4.2 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
// 模拟项目路径(实际会是真实的项目路径)
|
|
const projectPath = process.cwd();
|
|
const settingsPath = path.join(projectPath, '.ecs-framework-settings.json');
|
|
|
|
console.log('🧪 测试ECS框架设置功能...');
|
|
console.log('设置文件路径:', settingsPath);
|
|
|
|
// 默认设置
|
|
const testSettings = {
|
|
codeGeneration: {
|
|
template: 'typescript',
|
|
useStrictMode: true,
|
|
generateComments: true,
|
|
generateImports: true,
|
|
componentSuffix: 'Component',
|
|
systemSuffix: 'System',
|
|
indentStyle: 'spaces',
|
|
indentSize: 4
|
|
},
|
|
performance: {
|
|
enableMonitoring: true,
|
|
warningThreshold: 16.67,
|
|
criticalThreshold: 33.33,
|
|
memoryWarningMB: 100,
|
|
memoryCriticalMB: 200,
|
|
maxRecentSamples: 60,
|
|
enableFpsMonitoring: true,
|
|
targetFps: 60
|
|
},
|
|
debugging: {
|
|
enableDebugMode: true,
|
|
showEntityCount: true,
|
|
showSystemExecutionTime: true,
|
|
enablePerformanceWarnings: true,
|
|
logLevel: 'info',
|
|
enableDetailedLogs: false
|
|
},
|
|
editor: {
|
|
autoRefreshAssets: true,
|
|
showWelcomePanelOnStartup: true,
|
|
enableAutoUpdates: false,
|
|
updateChannel: 'stable',
|
|
enableNotifications: true
|
|
},
|
|
template: {
|
|
defaultEntityName: 'TestEntity', // 修改这个值来测试
|
|
defaultComponentName: 'TestComponent',
|
|
defaultSystemName: 'TestSystem',
|
|
createExampleFiles: true,
|
|
includeDocumentation: true,
|
|
useFactoryPattern: true
|
|
},
|
|
events: {
|
|
enableEventSystem: true,
|
|
defaultEventPriority: 0,
|
|
enableAsyncEvents: true,
|
|
enableEventBatching: false,
|
|
batchSize: 10,
|
|
batchDelay: 16,
|
|
maxEventListeners: 100
|
|
}
|
|
};
|
|
|
|
// 测试保存功能
|
|
console.log('✅ 测试保存设置...');
|
|
try {
|
|
fs.writeFileSync(settingsPath, JSON.stringify(testSettings, null, 2), 'utf-8');
|
|
console.log('✅ 设置已成功保存到:', settingsPath);
|
|
} catch (error) {
|
|
console.error('❌ 保存设置失败:', error);
|
|
}
|
|
|
|
// 测试加载功能
|
|
console.log('✅ 测试加载设置...');
|
|
try {
|
|
if (fs.existsSync(settingsPath)) {
|
|
const loadedData = fs.readFileSync(settingsPath, 'utf-8');
|
|
const loadedSettings = JSON.parse(loadedData);
|
|
|
|
console.log('✅ 设置已成功加载');
|
|
console.log('默认实体名称:', loadedSettings.template.defaultEntityName);
|
|
console.log('调试模式:', loadedSettings.debugging.enableDebugMode);
|
|
console.log('目标FPS:', loadedSettings.performance.targetFps);
|
|
|
|
// 验证数据完整性
|
|
const expectedKeys = Object.keys(testSettings);
|
|
const loadedKeys = Object.keys(loadedSettings);
|
|
|
|
if (expectedKeys.every(key => loadedKeys.includes(key))) {
|
|
console.log('✅ 数据完整性检查通过');
|
|
} else {
|
|
console.log('❌ 数据完整性检查失败');
|
|
}
|
|
} else {
|
|
console.log('❌ 设置文件不存在');
|
|
}
|
|
} catch (error) {
|
|
console.error('❌ 加载设置失败:', error);
|
|
}
|
|
|
|
// 测试修改和重新保存
|
|
console.log('✅ 测试修改设置...');
|
|
try {
|
|
const modifiedSettings = { ...testSettings };
|
|
modifiedSettings.template.defaultEntityName = 'ModifiedEntity';
|
|
modifiedSettings.performance.targetFps = 120;
|
|
|
|
fs.writeFileSync(settingsPath, JSON.stringify(modifiedSettings, null, 2), 'utf-8');
|
|
|
|
// 重新加载验证
|
|
const reloadedData = fs.readFileSync(settingsPath, 'utf-8');
|
|
const reloadedSettings = JSON.parse(reloadedData);
|
|
|
|
if (reloadedSettings.template.defaultEntityName === 'ModifiedEntity' &&
|
|
reloadedSettings.performance.targetFps === 120) {
|
|
console.log('✅ 设置修改测试通过');
|
|
} else {
|
|
console.log('❌ 设置修改测试失败');
|
|
}
|
|
} catch (error) {
|
|
console.error('❌ 修改设置测试失败:', error);
|
|
}
|
|
|
|
console.log('🎉 测试完成!设置功能工作正常。');
|
|
console.log('📁 设置文件位置:', settingsPath);
|
|
|
|
// 清理测试文件(可选)
|
|
// fs.unlinkSync(settingsPath);
|
|
// console.log('🧹 已清理测试文件');
|