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

78 lines
2.1 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { pool } from '../db.js';
async function testAPIFilter() {
try {
console.log('\n🧪 TEST DU FILTRAGE API\n');
// Test 1: Sans filtre - Tous les tickets
console.log('1⃣ Sans filtre:');
const allTickets = await pool.query(`
SELECT
t.code,
p.name as prize_name,
p.type as prize_type,
t.status
FROM tickets t
LEFT JOIN prizes p ON t.prize_id = p.id
LIMIT 5
`);
console.log(` ${allTickets.rows.length} résultats`);
allTickets.rows.forEach((t, idx) => {
console.log(` ${idx + 1}. ${t.code} - ${t.prize_name} (${t.prize_type})`);
});
// Test 2: Avec filtre prizeType = INFUSEUR
console.log('\n2⃣ Filtre prizeType=INFUSEUR:');
const infuseurTickets = await pool.query(`
SELECT
t.code,
p.name as prize_name,
p.type as prize_type,
t.status
FROM tickets t
LEFT JOIN prizes p ON t.prize_id = p.id
WHERE p.type = $1
LIMIT 5
`, ['INFUSEUR']);
console.log(` ${infuseurTickets.rows.length} résultats`);
infuseurTickets.rows.forEach((t, idx) => {
console.log(` ${idx + 1}. ${t.code} - ${t.prize_name} (${t.prize_type})`);
});
// Test 3: Compter les tickets par type
console.log('\n3⃣ Comptage par type:');
const count = await pool.query(`
SELECT
p.type,
p.name,
COUNT(t.id) as total
FROM prizes p
LEFT JOIN tickets t ON p.id = t.prize_id
GROUP BY p.type, p.name
ORDER BY total DESC
`);
count.rows.forEach(row => {
console.log(` ${row.type}: ${row.name} (${row.total} tickets)`);
});
// Test 4: Vérifier si des tickets ont été joués
console.log('\n4⃣ Tickets joués:');
const played = await pool.query(`
SELECT COUNT(*) as total
FROM tickets
WHERE user_id IS NOT NULL
`);
console.log(` Total tickets joués: ${played.rows[0].total}`);
await pool.end();
process.exit(0);
} catch (error) {
console.error('❌ Erreur:', error.message);
console.error(error.stack);
await pool.end();
process.exit(1);
}
}
testAPIFilter();