metallkart-erp/tests/e2e/README.md
louis b27edcf2d5 feat(e2e): set up isolated Playwright infra + 10 smoke tests (PLAYWRIGHT-P0)
- DB erp_test isolée (ports 3002/5174, erp_local intouché)
- seed-test.ts déterministe: 3 users, 2 clients, 2 suppliers, 2 orders, 59 help articles
- globalSetup truncate+reseed, webServer dual backend+frontend
- 10 smoke tests: login, RBAC, orders, documents, help drawer, Ctrl+/
- Réorganisation tests/: e2e/ (Playwright) vs backend/ (vitest)
- cross-env + dotenv pour portabilité Windows/Linux
- vite.config.ts proxy dynamique via BACKEND_PORT env var

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-11 18:26:33 +03:00

2.1 KiB

E2E Tests — Playwright

Prérequis

  • PostgreSQL 16 avec base erp_test créée
  • .env.test à la racine du projet (copier .env.test.example)
  • Chromium Playwright installé (npx playwright install chromium)

Lancement sur PC (Windows)

# 1. Créer la DB (une seule fois, avec superuser postgres)
$env:PGPASSWORD='postgres123'
& 'D:\PostgreSQL\16\bin\psql.exe' -U postgres -d postgres -h localhost -c "CREATE DATABASE erp_test OWNER metallkart;"

# 2. Pousser le schéma
$env:DATABASE_URL = "postgresql://metallkart:MK_PG_local_2026!@localhost:5432/erp_test"
npx prisma db push --skip-generate

# 3. Copier et remplir .env.test
cp .env.test.example .env.test

# 4. Lancer les tests (le backend/frontend de dev sur 3001/5173 peut rester actif)
npm run test:e2e

# Variantes
npm run test:e2e:headed   # avec navigateur visible
npm run test:e2e:ui       # interface Playwright UI
npm run test:e2e:debug    # mode debug pas-à-pas

Lancement sur VPS

ssh root@76.13.55.81
cd /opt/erp/metallkart-erp

# 1. Créer la DB
docker exec postgres-staging psql -U metallkart -d postgres -c "CREATE DATABASE erp_test OWNER metallkart;"

# 2. Pousser le schéma
DATABASE_URL="postgresql://metallkart:MK_PG_local_2026!@postgres-staging:5432/erp_test" \
  npx prisma db push --skip-generate

# 3. Préparer .env.test
cp .env.test.example .env.test
sed -i 's|<REPLACE_ME>|MK_PG_local_2026!|' .env.test
sed -i 's|localhost:5432|postgres-staging:5432|' .env.test

# 4. Installer Chromium si nécessaire
npx playwright install chromium

# 5. Lancer
npm run test:e2e

Architecture

  • erp_test : DB dédiée, truncate+reseed à chaque run
  • Port 3002 : backend test (pas 3001 dev)
  • Port 5174 : frontend test (pas 5173 dev)
  • erp_local : jamais touché par les tests

Dataset seedé

  • 3 users (admin, commercial, acheteur) — mot de passe Test_2026!
  • 2 clients (1 avec contrat SIGNED, 1 sans)
  • 2 fournisseurs (1 avec contrat, 1 sans)
  • 2 orders (1 DRAFT #1001, 1 IN_PRODUCTION #1002 avec smeta)
  • 1 tender OPEN, 1 PO DRAFT, 1 purchase lot
  • 59 articles d'aide