77 lines
2.5 KiB
JavaScript
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);
|