80 lines
2.7 KiB
JavaScript
80 lines
2.7 KiB
JavaScript
/**
|
|
* Script de test pour vérifier l'affichage des stocks
|
|
*/
|
|
|
|
const API_URL = 'http://localhost:4000/api';
|
|
|
|
async function testPrizes() {
|
|
try {
|
|
console.log('🔐 Connexion admin...');
|
|
|
|
// Connexion
|
|
const loginRes = await fetch(`${API_URL}/auth/login`, {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify({
|
|
email: 'admin@thetiptop.com',
|
|
password: 'Admin123!'
|
|
})
|
|
});
|
|
|
|
const loginData = await loginRes.json();
|
|
|
|
if (!loginData.success) {
|
|
console.error('❌ Échec de connexion');
|
|
return;
|
|
}
|
|
|
|
const token = loginData.token;
|
|
console.log('✅ Connecté\n');
|
|
|
|
// Récupérer les prix
|
|
console.log('📊 Récupération des lots...\n');
|
|
const prizesRes = await fetch(`${API_URL}/admin/prizes`, {
|
|
headers: { 'Authorization': `Bearer ${token}` }
|
|
});
|
|
|
|
const prizesData = await prizesRes.json();
|
|
|
|
if (!prizesData.success) {
|
|
console.error('❌ Échec de récupération des lots');
|
|
return;
|
|
}
|
|
|
|
console.log(`✅ ${prizesData.data.length} lots trouvés\n`);
|
|
|
|
// Afficher chaque lot
|
|
prizesData.data.forEach((prize, index) => {
|
|
console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
console.log(`Lot ${index + 1}: ${prize.name}`);
|
|
console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`);
|
|
console.log(`Type: ${prize.type}`);
|
|
console.log(`Valeur: ${prize.value}€`);
|
|
console.log(`Probabilité: ${(prize.probability * 100).toFixed(2)}%`);
|
|
console.log(`\n📦 STOCKS:`);
|
|
console.log(` Stock généré (initial): ${prize.initial_stock || 'N/A'}`);
|
|
console.log(` Stock restant: ${prize.stock}`);
|
|
console.log(` Tickets utilisés: ${prize.tickets_used || 0}`);
|
|
|
|
// Vérification
|
|
if (prize.initial_stock && prize.tickets_used) {
|
|
const calculatedStock = parseInt(prize.initial_stock) - parseInt(prize.tickets_used);
|
|
const isCorrect = calculatedStock === parseInt(prize.stock);
|
|
console.log(`\n🔍 Vérification: ${prize.initial_stock} - ${prize.tickets_used} = ${calculatedStock}`);
|
|
console.log(` ${isCorrect ? '✅' : '❌'} Stock restant correct: ${prize.stock}`);
|
|
}
|
|
|
|
console.log(`\nStatut: ${prize.is_active ? '✅ Actif' : '⚠️ Inactif'}`);
|
|
console.log('');
|
|
});
|
|
|
|
console.log(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n`);
|
|
console.log('✅ Test terminé avec succès!\n');
|
|
|
|
} catch (error) {
|
|
console.error('❌ Erreur:', error.message);
|
|
}
|
|
}
|
|
|
|
testPrizes();
|