add changes
This commit is contained in:
88
tests/verify-seeded-data.js
Normal file
88
tests/verify-seeded-data.js
Normal file
@@ -0,0 +1,88 @@
|
||||
const { Sequelize } = require('sequelize');
|
||||
const config = require('../config/database');
|
||||
|
||||
const sequelize = new Sequelize(
|
||||
config.development.database,
|
||||
config.development.username,
|
||||
config.development.password,
|
||||
{
|
||||
host: config.development.host,
|
||||
dialect: config.development.dialect,
|
||||
logging: false
|
||||
}
|
||||
);
|
||||
|
||||
async function verifyData() {
|
||||
try {
|
||||
await sequelize.authenticate();
|
||||
console.log('✅ Database connection established\n');
|
||||
|
||||
// Get counts from each table
|
||||
const [categories] = await sequelize.query('SELECT COUNT(*) as count FROM categories');
|
||||
const [users] = await sequelize.query('SELECT COUNT(*) as count FROM users');
|
||||
const [questions] = await sequelize.query('SELECT COUNT(*) as count FROM questions');
|
||||
const [achievements] = await sequelize.query('SELECT COUNT(*) as count FROM achievements');
|
||||
|
||||
console.log('📊 Seeded Data Summary:');
|
||||
console.log('========================');
|
||||
console.log(`Categories: ${categories[0].count} rows`);
|
||||
console.log(`Users: ${users[0].count} rows`);
|
||||
console.log(`Questions: ${questions[0].count} rows`);
|
||||
console.log(`Achievements: ${achievements[0].count} rows`);
|
||||
console.log('========================\n');
|
||||
|
||||
// Verify category names
|
||||
const [categoryList] = await sequelize.query('SELECT name, slug, guest_accessible FROM categories ORDER BY display_order');
|
||||
console.log('📁 Categories:');
|
||||
categoryList.forEach(cat => {
|
||||
console.log(` - ${cat.name} (${cat.slug}) ${cat.guest_accessible ? '🔓 Guest' : '🔒 Auth'}`);
|
||||
});
|
||||
console.log('');
|
||||
|
||||
// Verify admin user
|
||||
const [adminUser] = await sequelize.query("SELECT username, email, role FROM users WHERE email = 'admin@quiz.com'");
|
||||
if (adminUser.length > 0) {
|
||||
console.log('👤 Admin User:');
|
||||
console.log(` - Username: ${adminUser[0].username}`);
|
||||
console.log(` - Email: ${adminUser[0].email}`);
|
||||
console.log(` - Role: ${adminUser[0].role}`);
|
||||
console.log(' - Password: Admin@123');
|
||||
console.log('');
|
||||
}
|
||||
|
||||
// Verify questions by category
|
||||
const [questionsByCategory] = await sequelize.query(`
|
||||
SELECT c.name, COUNT(q.id) as count
|
||||
FROM categories c
|
||||
LEFT JOIN questions q ON c.id = q.category_id
|
||||
GROUP BY c.id, c.name
|
||||
ORDER BY c.display_order
|
||||
`);
|
||||
console.log('❓ Questions by Category:');
|
||||
questionsByCategory.forEach(cat => {
|
||||
console.log(` - ${cat.name}: ${cat.count} questions`);
|
||||
});
|
||||
console.log('');
|
||||
|
||||
// Verify achievements by category
|
||||
const [achievementsByCategory] = await sequelize.query(`
|
||||
SELECT category, COUNT(*) as count
|
||||
FROM achievements
|
||||
GROUP BY category
|
||||
ORDER BY category
|
||||
`);
|
||||
console.log('🏆 Achievements by Category:');
|
||||
achievementsByCategory.forEach(cat => {
|
||||
console.log(` - ${cat.category}: ${cat.count} achievements`);
|
||||
});
|
||||
console.log('');
|
||||
|
||||
console.log('✅ All data seeded successfully!');
|
||||
process.exit(0);
|
||||
} catch (error) {
|
||||
console.error('❌ Error verifying data:', error.message);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
verifyData();
|
||||
Reference in New Issue
Block a user