Files
2025-12-29 11:16:30 +11:00

48 lines
1.5 KiB
JavaScript

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