the-tip-top-backend/test-prizes.js
2025-11-17 23:47:54 +01:00

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();