This project demonstrates CRUD operations (Create, Read, Update, Delete) against a PostgreSQL database using:
- Playwright Test Runner
- node-postgres (pg)
- Repository pattern + service/use-case classes
- Separate test specs per CRUD operation
src/db/users.repository.ts-> Data access layer (SQL queries)src/db/services/*-> Single-responsibility service classes (Create/Read/Update/Delete)tests/*.spec.ts-> Separate specs for each CRUDtests/helpers/db.setup.ts-> Shared DB setup/teardown + service wiring
- Node.js 18+
- PostgreSQL running locally
npm install
Create a .env file in the project root (copy from .env.example):
DATABASE_URL=:yourpassword@localhost:1234/yourdatabase
createdb mydatabase
npm test
- Schema is ensured automatically via
src/db/schema.ts(tableusers). - Each test creates its own data and cleans it up to avoid state leaks.