Files
dbis_core-lite/docs/deployment/test-database-setup.md

85 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

# Test Database Setup - Quick Reference
## ✅ Setup Complete
The test database configuration files have been created:
- `.env.test` - Test environment variables (create/edit with your credentials)
- `.env.test.example` - Example configuration
- `jest.config.js` - Jest configuration with environment loading
- `tests/load-env.ts` - Environment loader for tests
## 🚀 Quick Start
### Step 1: Create Test Database
```bash
createdb dbis_core_test
```
**Or with Docker:**
```bash
docker run --name dbis-postgres-test \
-e POSTGRES_PASSWORD=postgres \
-e POSTGRES_USER=postgres \
-p 5432:5432 \
-d postgres:15
sleep 5
docker exec -i dbis-postgres-test psql -U postgres -c "CREATE DATABASE dbis_core_test;"
```
### Step 2: Update .env.test
Edit `.env.test` with your PostgreSQL credentials:
```bash
TEST_DATABASE_URL=postgresql://USERNAME:PASSWORD@localhost:5432/dbis_core_test
```
### Step 3: Run Migrations
```bash
export TEST_DATABASE_URL="postgresql://postgres:postgres@localhost:5432/dbis_core_test"
DATABASE_URL=$TEST_DATABASE_URL npm run migrate
```
### Step 4: Run Tests
```bash
npm test
```
## 📝 Files Created
1. **`.env.test`** - Test environment configuration (you may need to update credentials)
2. **`jest.config.js`** - Jest configuration that loads .env.test
3. **`tests/load-env.ts`** - Loads environment variables before tests
4. **`scripts/setup-test-db.sh`** - Automated setup script (requires PostgreSQL running)
5. **`scripts/quick-test-setup.sh`** - Quick reference script
6. **`README_TEST_DATABASE.md`** - Detailed setup guide
## 🔍 Verify Setup
```bash
# Check database exists
psql -U postgres -l | grep dbis_core_test
# Check tables
psql -U postgres -d dbis_core_test -c "\dt"
# Run a test
npm test -- tests/validation/payment-validation.test.ts
```
## ⚠️ Notes
- The `.env.test` file uses default PostgreSQL credentials (`postgres/postgres`)
- Update `.env.test` if your PostgreSQL uses different credentials
- The test database will be truncated between test runs
- Never use your production database as the test database
---
**Next:** Run `npm test` to execute the full test suite!