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