candidate-portal-2/scripts/test-mongodb.js

77 lines
2.5 KiB
JavaScript

require('dotenv').config();
const mongoose = require('mongoose');
const { cyan, green, red, yellow } = require('colorette');
const MONGODB_URI = process.env.MONGODB_URI || 'mongodb://localhost:27017/candidate-portal';
async function main() {
console.log(cyan('🔍 Testing MongoDB connection...'));
try {
// Connect to MongoDB
await mongoose.connect(MONGODB_URI, {
bufferCommands: false,
serverSelectionTimeoutMS: 5000,
});
console.log(green('✅ Connected to MongoDB successfully!'));
// Create a temporary test model
const TestSchema = new mongoose.Schema({
name: String,
email: String,
createdAt: {
type: Date,
default: Date.now
}
});
// Define the model name with a timestamp to ensure uniqueness
const modelName = `Test_${Date.now()}`;
const Test = mongoose.model(modelName, TestSchema);
// Create test document
console.log(cyan('📝 Creating test document...'));
const testDoc = await Test.create({
name: 'Test User',
email: `test-${Date.now()}@example.com`
});
console.log(green('✅ Created test document:'), testDoc._id.toString());
// Read test document
console.log(cyan('📖 Reading test document...'));
const foundDoc = await Test.findById(testDoc._id);
console.log(green('✅ Found test document:'), foundDoc.name);
// Update test document
console.log(cyan('🔄 Updating test document...'));
const updatedDoc = await Test.findByIdAndUpdate(
testDoc._id,
{ name: 'Updated Test User' },
{ new: true }
);
console.log(green('✅ Updated test document:'), updatedDoc.name);
// Delete test document
console.log(cyan('🗑️ Deleting test document...'));
await Test.findByIdAndDelete(testDoc._id);
const checkDeleted = await Test.findById(testDoc._id);
console.log(green('✅ Test document deleted'), checkDeleted === null ? 'successfully' : 'failed');
// Test collection operations
console.log(cyan('📊 Testing collection operations...'));
const collections = await mongoose.connection.db.listCollections().toArray();
console.log(green('✅ Collections in database:'), collections.map(c => c.name).join(', '));
console.log(green('✅ All MongoDB operations completed successfully!'));
} catch (error) {
console.error(red('❌ MongoDB Test Error:'), error);
} finally {
// Clean up connection
await mongoose.disconnect();
console.log(yellow('🔌 Disconnected from MongoDB'));
}
}
main().catch(console.error);