fix(back,front) : adresse client — au moins une categorie obligatoire
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m54s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m15s

Spec-front § Adresse : la categorie est obligatoire sur une adresse, mais
n'etait enforced ni au back ni au front.

- Back : ClientAddress::$categories porte desormais Assert\Count(min: 1)
  (POST/PATCH sans categorie -> 422). Test testAddressRequiresAtLeastOneCategory ;
  deux tests existants qui creaient une adresse sans categorie recoivent une
  categorie SECTEUR.
- Front : canValidateAddresses (creation + modification) exige >= 1 categorie
  par adresse -> bouton Enregistrer desactive tant qu'aucune categorie n'est
  choisie (meme gating que les sites).
This commit is contained in:
2026-06-03 15:57:26 +02:00
parent 9c301371fb
commit 7a45d17724
5 changed files with 40 additions and 7 deletions
@@ -110,9 +110,10 @@ final class ClientSubResourceApiTest extends AbstractCommercialApiTestCase
public function testPostAddressNormalizesBillingEmail(): void
{
$this->skipIfSitesModuleDisabled();
$client = $this->createAdminClient();
$seed = $this->seedClient('Address Host');
$siteIri = $this->firstSiteIri();
$client = $this->createAdminClient();
$seed = $this->seedClient('Address Host');
$siteIri = $this->firstSiteIri();
$category = $this->createCategory('SECTEUR');
$data = $client->request('POST', '/api/clients/'.$seed->getId().'/addresses', [
'headers' => ['Content-Type' => self::LD],
@@ -123,6 +124,7 @@ final class ClientSubResourceApiTest extends AbstractCommercialApiTestCase
'city' => 'Châtellerault',
'street' => '1 rue du Test',
'sites' => [$siteIri],
'categories' => ['/api/categories/'.$category->getId()],
],
])->toArray();