- 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>
2.1 KiB
2.1 KiB
E2E Tests — Playwright
Prérequis
- PostgreSQL 16 avec base
erp_testcréé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