This repository was archived by the owner on Oct 24, 2025. It is now read-only.
forked from Luuxis/Selvania-Launcher
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest-optimizations.js
More file actions
179 lines (142 loc) · 4.96 KB
/
Copy pathtest-optimizations.js
File metadata and controls
179 lines (142 loc) · 4.96 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
#!/usr/bin/env node
/**
* Script de test pour vérifier les optimisations du launcher
*/
const { spawn } = require('child_process');
const fs = require('fs');
const path = require('path');
console.log('🧪 Test des optimisations du launcher MultiGames Studio');
console.log('='.repeat(60));
// Tests de base
function runTests() {
const tests = [
testPackageJson,
testFileStructure,
testOptimizedFiles,
testStartupScript
];
let passed = 0;
let failed = 0;
tests.forEach((test, index) => {
try {
console.log(`\n${index + 1}. ${test.name}...`);
test();
console.log(' ✅ PASSED');
passed++;
} catch (error) {
console.log(` ❌ FAILED: ${error.message}`);
failed++;
}
});
console.log('\n' + '='.repeat(60));
console.log(`📊 Résultats: ${passed} réussis, ${failed} échoués`);
if (failed === 0) {
console.log('🎉 Tous les tests sont passés! Le launcher est optimisé.');
} else {
console.log('⚠️ Certains tests ont échoué. Vérifiez les erreurs ci-dessus.');
}
}
function testPackageJson() {
const packagePath = './package.json';
if (!fs.existsSync(packagePath)) {
throw new Error('package.json non trouvé');
}
const pkg = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
// Vérifier les corrections
if (pkg.name !== 'multigames-studio-launcher') {
throw new Error(`Nom incorrect: ${pkg.name}`);
}
if (!pkg.productName) {
throw new Error('productName manquant (était preductname)');
}
if (!pkg.engines) {
throw new Error('Spécifications engines manquantes');
}
console.log(' 📦 package.json correctement configuré');
}
function testFileStructure() {
const requiredFiles = [
'./src/app.js',
'./src/assets/js/launcher.js',
'./src/assets/js/utils/config.js',
'./src/assets/js/utils/database.js',
'./src/assets/js/utils/performance.js',
'./src/assets/js/utils/errorHandler.js',
'./OPTIMIZATIONS.md'
];
requiredFiles.forEach(file => {
if (!fs.existsSync(file)) {
throw new Error(`Fichier manquant: ${file}`);
}
});
console.log(' 📁 Structure de fichiers correcte');
}
function testOptimizedFiles() {
// Vérifier que les optimisations sont présentes
const launcherPath = './src/assets/js/launcher.js';
const launcherContent = fs.readFileSync(launcherPath, 'utf8');
if (!launcherContent.includes('performanceOptimizer')) {
throw new Error('Optimisations de performance manquantes dans launcher.js');
}
if (!launcherContent.includes('errorHandler')) {
throw new Error('Gestionnaire d\'erreurs manquant dans launcher.js');
}
const appPath = './src/app.js';
const appContent = fs.readFileSync(appPath, 'utf8');
if (!appContent.includes('uncaughtException')) {
throw new Error('Gestion des erreurs globales manquante dans app.js');
}
console.log(' 🔧 Optimisations présentes dans les fichiers');
}
function testStartupScript() {
const pkg = JSON.parse(fs.readFileSync('./package.json', 'utf8'));
if (!pkg.scripts.start) {
throw new Error('Script start manquant');
}
if (!pkg.scripts.dev) {
throw new Error('Script dev manquant');
}
console.log(' 🚀 Scripts de démarrage configurés');
}
// Fonction pour tester le démarrage (optionnel)
function testLauncherStartup() {
return new Promise((resolve, reject) => {
console.log('\n🔄 Test de démarrage du launcher (optionnel)...');
const child = spawn('npm', ['run', 'start'], {
stdio: 'pipe',
shell: true,
timeout: 10000 // 10 secondes max
});
let output = '';
child.stdout.on('data', (data) => {
output += data.toString();
});
child.stderr.on('data', (data) => {
output += data.toString();
});
child.on('close', (code) => {
if (output.includes('Initializing Launcher')) {
console.log(' ✅ Le launcher démarre correctement');
resolve();
} else {
console.log(' ⚠️ Démarrage du launcher non confirmé');
resolve(); // Ne pas faire échouer pour ça
}
});
child.on('error', (error) => {
console.log(` ⚠️ Erreur lors du test de démarrage: ${error.message}`);
resolve(); // Ne pas faire échouer pour ça
});
// Arrêter le processus après un moment
setTimeout(() => {
child.kill();
resolve();
}, 8000);
});
}
// Exécuter les tests
runTests();
// Test de démarrage optionnel (décommenter si souhaité)
// testLauncherStartup().then(() => {
// console.log('\n✨ Tests terminés!');
// });