test(logistique) : tests PHPUnit RG-5.01→5.10 + capture contrat JSON (ERP-187) #137

Merged
matthieu merged 5 commits from feat/erp-187-tests-tickets-pesee into develop 2026-06-18 13:33:40 +00:00

5 Commits

Author SHA1 Message Date
Matthieu 644f91ef9d style(logistique) : @var phpdoc -> commentaire ligne dans WeighingTicketProvider (cs-fixer 3.94.2)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 3m13s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m50s
Le gate CI Backend (php-cs-fixer 3.94.2) convertit le /** @var list<WeighingTicket> $tickets */
place devant un return (et non une affectation) en commentaire // @var. Aligne le fichier
sur la version de cs-fixer portee par develop apres rebase de la stack M5. Inerte a l'execution.
2026-06-18 15:10:03 +02:00
matthieu 954da07f8d Merge branch 'develop' into feat/erp-187-tests-tickets-pesee
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m37s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Failing after 1m10s
2026-06-18 12:51:41 +00:00
matthieu 802a1592fa Merge branch 'develop' into feat/erp-187-tests-tickets-pesee
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Has been cancelled
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Has been cancelled
2026-06-18 12:48:10 +00:00
Matthieu 47fdbc43ff test(logistique) : durcissement tests M5 — embed FOURNISSEUR symetrique + propertyPath 422 (ERP-187)
- WeighingTicketSerializationContractTest : couvre la branche FOURNISSEUR (supplier embarque, client null) en plus de CLIENT (piege #1 symetrique, spec § 4.0.bis).
- AbstractWeighingTicketApiTestCase : helpers seedTestSupplier + payload FOURNISSEUR + purge supplier au tearDown.
- WeighbridgeReadingApiTest : les 422 (mode invalide / poids manquant) verifient desormais le propertyPath (garde-fou ERP-101), pas seulement le code HTTP.
- NetWeightTest : docbloc isNew/contains() clarifie.
2026-06-18 14:37:16 +02:00
Matthieu b036c72615 test(logistique) : tests PHPUnit RG-5.01→5.10 + capture contrat JSON (ERP-187)
Couverture des règles de gestion du M5 (tickets de pesée) et capture de la
réponse JSON réelle (DoD § 4.0.bis) avant les écrans front.

Tests unitaires (Processor/Normalizer/Callback, sans BDD ni HTTP) :
- NetWeightTest (RG-5.05) : net = plein − vide, null si pesée manquante, recalcul PATCH.
- CounterpartyValidationTest (RG-5.03) : présence par branche (propertyPath) + exclusivité.
- ImmatriculationNormalizationTest (RG-5.01/5.10) : masque XX-000-XX, « Tout format », 422.

Tests fonctionnels (API réelle) :
- WeighingTicketNumberingTest (RG-5.02/5.09) : format {siteCode}-TP-{NNNN}, séquence
  par site, isolation inter-sites, immuabilité numéro/site au PATCH.
- WeighingTicketSerializationContractTest (DoD § 4.0.bis) : 4 pièges (client embarqué,
  plateFreeFormat présent, number formaté, netWeight = full − empty) + dump JSON.
- WeighingTicketRBACMatrixTest (§ 5.2) : admin/bureau/usine OK, compta/commerciale 403,
  anonyme 401.

DSD/stub/reading déjà couverts (ERP-184/185). spec-back.md § 4.0.bis : JSON réel collé.
2026-06-18 14:37:16 +02:00