85 lines
2.1 KiB
Markdown
85 lines
2.1 KiB
Markdown
# 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!
|
|
|