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

69 lines
2.2 KiB
JavaScript
Raw 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 testAllTicketsFilter() {
try {
console.log('\n🧪 TEST AFFICHAGE TOUS LES TICKETS AVEC FILTRE\n');
// Test 1: Sans filtre - premiers 20 tickets
console.log('1⃣ Sans filtre (20 premiers):');
const allTickets = await pool.query(`
SELECT
t.code,
p.name as prize_name,
p.type as prize_type,
t.status,
t.played_at
FROM tickets t
LEFT JOIN prizes p ON t.prize_id = p.id
ORDER BY t.played_at DESC NULLS LAST, t.created_at DESC
LIMIT 20
`);
console.log(` ${allTickets.rows.length} résultats\n`);
allTickets.rows.slice(0, 5).forEach((t, idx) => {
const played = t.played_at ? '✓ Joué' : '○ Non joué';
console.log(` ${idx + 1}. ${t.code} - ${t.prize_name} (${t.prize_type}) ${played}`);
});
// Test 2: Filtre THE_SIGNATURE
console.log('\n2⃣ Filtre prizeType=THE_SIGNATURE (20 premiers):');
const signatureTickets = await pool.query(`
SELECT
t.code,
p.name as prize_name,
p.type as prize_type,
t.status,
t.played_at
FROM tickets t
LEFT JOIN prizes p ON t.prize_id = p.id
WHERE p.type = $1
ORDER BY t.played_at DESC NULLS LAST, t.created_at DESC
LIMIT 20
`, ['THE_SIGNATURE']);
console.log(` ${signatureTickets.rows.length} résultats\n`);
signatureTickets.rows.slice(0, 5).forEach((t, idx) => {
const played = t.played_at ? '✓ Joué' : '○ Non joué';
console.log(` ${idx + 1}. ${t.code} - ${t.prize_name} (${t.prize_type}) ${played}`);
});
// Test 3: Compter avec filtre
console.log('\n3⃣ Comptage avec filtre THE_SIGNATURE:');
const count = await pool.query(`
SELECT COUNT(*) as total
FROM tickets t
LEFT JOIN prizes p ON t.prize_id = p.id
WHERE p.type = $1
`, ['THE_SIGNATURE']);
console.log(` Total: ${parseInt(count.rows[0].total).toLocaleString('fr-FR')} tickets`);
await pool.end();
process.exit(0);
} catch (error) {
console.error('❌ Erreur:', error.message);
console.error(error.stack);
await pool.end();
process.exit(1);
}
}
testAllTicketsFilter();