feat(technique) : validations RG comptables server-side (RG-3.07/3.08) (ERP-136) #95
Reference in New Issue
Block a user
Delete Branch "feature/ERP-136-validations-rg-server-side"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Ticket ERP-136 (M3 — Répertoire prestataires, position 1.6). Valide les RG métier server-side (couche autoritaire, mode strict). Empilé sur ERP-135 (cible la branche
feature/ERP-135-sous-ressources-provider, pasdevelop).Constat
L'essentiel des RG du périmètre étaient déjà portées par les contraintes d'entité / gardes des processors posées en ERP-133/134/135 (RG-3.03/3.05
Assert\Count, RG-3.09validateCategoryType, écriture cloisonnée § 2.13guardSiteScope, RG-3.08 DELETE dernier RIB → 409). Le périmètre neuf de ce ticket = RG-3.07 et RG-3.08 (volet écriture du formulaire).Changements
Provider::validatePaymentTypeConsistency(nouveauAssert\Callback, miroirSupplier, décision ERP-89) :paymentType=VIREMENT+banknull → 422 (violation surbank).paymentType=LCR+ 0 RIB → 422 (violation surpaymentType).ProviderProcessor: docblock réaligné (RG-3.07/3.08 portées par l'entité, comme RG-3.09).AbstractProviderApiTestCase::bank(): helper référentiel banque (miroir M2).ProviderAccountingValidationTest: 4 cas (négatif 422 / positif 200) par RG.Pourquoi sur l'entité et non le processor
La spec suggérait
ProviderProcessor, mais on aligne sur la décision figée ERP-89 du jumeau M2 : RG inter-champs viaAssert\Callback+->atPath()pour que chaque 422 porte unpropertyPathexploitable inline côté front (ERP-101).Vérifications
ProviderAccountingValidationTest→ 4 tests OKEntityConstraintsHaveFrenchMessageTest+ suite Technique → 51 tests OKmake php-cs-fixer-allow-risky→ 0 fixmake test→ 635 tests OKConsolidée dans #100 : toute la pile M3-Prestataire (ERP-134 à ERP-139) a été rebasée sur develop et regroupée dans la MR #100 (mergeable, tests verts). Cette MR intermédiaire est fermée pour ne garder qu'une seule MR ouverte. Les commits de ce ticket restent présents dans #100.
Pull request closed