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