first commit
This commit is contained in:
47
server/test-db.js
Normal file
47
server/test-db.js
Normal file
@@ -0,0 +1,47 @@
|
||||
const duckdb = require('duckdb');
|
||||
const path = require('path');
|
||||
|
||||
const dbPath = path.join(__dirname, 'data', 'chat.duckdb');
|
||||
const db = new duckdb.Database(dbPath);
|
||||
const con = db.connect();
|
||||
|
||||
console.log('Testing DuckDB operations...');
|
||||
|
||||
const walletAddress = 'test_wallet_' + Date.now();
|
||||
const username = 'TestUser';
|
||||
const now = new Date().toISOString();
|
||||
|
||||
// Test User Upsert
|
||||
con.run(`INSERT INTO users (wallet_address, username, last_seen) VALUES (?, ?, ?)
|
||||
ON CONFLICT (wallet_address) DO UPDATE SET last_seen = EXCLUDED.last_seen, username = EXCLUDED.username`,
|
||||
[walletAddress, username, now], (err) => {
|
||||
if (err) {
|
||||
console.error('FAIL: User upsert failed:', err);
|
||||
process.exit(1);
|
||||
}
|
||||
console.log('PASS: User upsert successful');
|
||||
|
||||
// Test Message Insert
|
||||
const channelId = 'nebula';
|
||||
const content = 'Test message content';
|
||||
con.run(`INSERT INTO messages (id, channel_id, wallet_address, content, timestamp)
|
||||
VALUES (nextval('seq_msg_id'), ?, ?, ?, ?)`,
|
||||
[channelId, walletAddress, content, now], function (err) {
|
||||
if (err) {
|
||||
console.error('FAIL: Message insert failed:', err);
|
||||
process.exit(1);
|
||||
}
|
||||
console.log('PASS: Message insert successful');
|
||||
|
||||
// Verify Data
|
||||
con.all(`SELECT * FROM messages WHERE wallet_address = ?`, [walletAddress], (err, rows) => {
|
||||
if (err || rows.length === 0) {
|
||||
console.error('FAIL: Verification failed:', err);
|
||||
process.exit(1);
|
||||
}
|
||||
console.log('PASS: Verification successful, found message:', rows[0].content);
|
||||
console.log('All tests passed!');
|
||||
process.exit(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user