Mini-application de gestion de parcelles agricoles conçue pour demontrer une strategie de tests complete:
- Frontend: Angular (TypeScript)
- Backend: Express (TypeScript) + PostgreSQL
- Tests unitaires backend: Jest
- Tests frontend mockes: Vitest
- Tests E2E BDD: Cucumber + Playwright
- Tests de performance API: k6
- Gestion des parcelles (CRUD)
- Gestion des plantations liees aux parcelles
- Gestion des traitements appliques aux parcelles
frontend/: application Angularbackend/: API Express + logique metier + SQL schema/seedtests/e2e/: features Gherkin + step definitions Playwrighttests/perf/: scripts k6infra/postgres/init/: scripts SQL d'initialisation PostgreSQLdocs/: documentation de demonstration et troubleshootingdocker-compose.yml: orchestration locale portableSTRATEGY.md: strategie de test multi-couches
- Docker + Docker Compose
- Node.js 22+ (uniquement si execution hors Docker)
- Playwright Chromium pour E2E locaux:
npx playwright install chromium
docker compose up --buildApplication disponible sur:
- Frontend: http://localhost:4200
- Backend health: http://localhost:3000/health
Arret:
docker compose downArret + suppression des donnees PostgreSQL:
docker compose down -v# 1) Monter la stack complete en arriere-plan
npm run demo:stack:up
# 2) Lancer les tests unitaires backend + frontend
npm run demo:test:all-local
# 3) Lancer les E2E (stack reelle)
npm run test:e2e
# 4) Lancer la perf API
npm run test:perf
# 5) Arreter la stack
npm run demo:stack:downnpm install
npm run test:unit:backendnpm install
npm run test:unit:frontendPrerequis: stack backend + frontend + db active.
npm install
npm run test:e2eVersion Docker profile tests:
docker compose --profile tests up --build --abort-on-container-exit e2ePrerequis: backend actif.
npm run test:perftest:perf utilise un conteneur grafana/k6 (pas de binaire k6 local requis).
Backend (backend service):
PORT(defaut:3000)DATABASE_URL(defaut local postgres)ENABLE_TEST_RESET(truepour autoriserPOST /api/test/reset)SEED_ON_STARTUP(falseen compose)
E2E:
FRONT_URL(defaut:http://localhost:4200)API_URL(defaut:http://localhost:3000/api)
- Les tests frontend Vitest passent sans backend lance (mocks obligatoires)
- Les tests E2E passent uniquement avec la stack reelle (frontend + backend + postgres)
- Le script k6 execute les scenarii nominal et spike sans depasser les seuils d'erreurs
- Le projet est deployable sur une autre machine via Docker Compose
- Strategie de test: STRATEGY.md
- Deroule de demonstration: docs/DEMO.md
- Depannage: docs/TROUBLESHOOTING.md
- CI pipeline: .github/workflows/ci.yml
- Performance nightly: .github/workflows/perf-nightly.yml