@automobilmart/autombilmart-backend-test-setup
v1.0.0
Published
Complete backend test database setup with MongoDB and deterministic seeding
Readme
Backend Test Database Setup - Complete Guide
🎯 Overview
This setup provides a complete, production-ready backend testing infrastructure that:
- ✅ Spins up fresh MongoDB for each CI/CD run
- ✅ Seeds deterministic test data (cars, users, orders)
- ✅ Completely isolated from production
- ✅ Sharding-safe and parallel-test compatible
- ✅ Works with Jenkins, GitHub Actions, local dev
- ✅ Automatic cleanup after tests
📁 Project Structure
backend-test-setup/
├── config/
│ ├── database.config.ts # DB configuration
│ └── test.env # Test environment variables
├── db/
│ ├── connection.ts # MongoDB connection manager
│ ├── seeders/
│ │ ├── index.ts # Main seeder orchestrator
│ │ ├── users.seeder.ts # User data seeding
│ │ ├── cars.seeder.ts # Car inventory seeding
│ │ ├── orders.seeder.ts # Order data seeding
│ │ └── payments.seeder.ts # Payment records seeding
│ ├── factories/
│ │ ├── user.factory.ts # User data factory
│ │ ├── car.factory.ts # Car data factory
│ │ └── order.factory.ts # Order data factory
│ └── models/
│ ├── User.model.ts # Mongoose User schema
│ ├── Car.model.ts # Mongoose Car schema
│ └── Order.model.ts # Mongoose Order schema
├── scripts/
│ ├── setup-test-db.ts # Setup script
│ ├── teardown-test-db.ts # Cleanup script
│ └── seed-db.ts # Seeding script
├── docker/
│ └── docker-compose.test.yml # MongoDB test container
├── ci/
│ ├── jenkins/
│ │ └── Jenkinsfile.test # Jenkins pipeline
│ └── github/
│ └── workflows/
│ └── test.yml # GitHub Actions workflow
└── package.json🚀 Quick Start
1. Installation
npm install --save-dev \
mongodb-memory-server \
@faker-js/faker \
mongoose \
dotenv2. Setup Test Database
# Local development
npm run test:db:setup
# Run tests
npm test
# Cleanup
npm run test:db:teardown3. CI/CD (Automatic)
# Jenkins / GitHub Actions will:
# 1. Spin up MongoDB
# 2. Seed test data
# 3. Run tests
# 4. Teardown everything📄 Complete Implementation
Below are all the files you need, ready to copy-paste!
Files to Create
All files are production-ready and follow TypeScript/Node.js best practices.
