diff --git a/scripts/verify_db.js b/scripts/verify_db.js new file mode 100644 index 0000000..b633708 --- /dev/null +++ b/scripts/verify_db.js @@ -0,0 +1,47 @@ +const db = require('../lib/db'); +const crypto = require('crypto'); + +async function testInsert() { + const id = crypto.randomUUID(); + console.log('Testing DB Insert with ID:', id); + try { + const query = ` + INSERT INTO test_results (id, url, user_uuid, user_ip, is_mobile, scores, metrics, filmstrip, timestamp) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, NOW()) + `; + const values = [ + id, + 'http://verify.local', + 'user_verify', + '127.0.0.1', + false, + JSON.stringify({performance: 100}), + JSON.stringify({lcp: 500}), + JSON.stringify([{timing: 0, data: 'data:image/jpeg...'}]) + ]; + + await db.pool.query(query, values); + console.log('✅ Insert successful!'); + + // Check if we can read it back + const res = await db.pool.query('SELECT * FROM test_results WHERE id = $1', [id]); + if(res.rows.length > 0) { + console.log('✅ Read successful:', res.rows[0].url); + console.log(' Data:', JSON.stringify(res.rows[0].scores)); + } else { + console.error('❌ Read failed!'); + } + + // Cleanup (optional, keeping it validates "filled" db, but user said "do insertions you need") + // Let's keep one row to show "it works"? No, cleaner to clean up or let user run real test. + // I will delete it to avoid junk. + await db.pool.query('DELETE FROM test_results WHERE id = $1', [id]); + console.log('✅ Cleanup successful!'); + process.exit(0); + } catch (err) { + console.error('❌ DB Error:', err); + process.exit(1); + } +} + +testInsert();