test(commercial) : POST sous-ressource sur client inexistant -> 404 (ERP-110)
This commit is contained in:
@@ -140,6 +140,25 @@ final class ClientSubResourceApiTest extends AbstractCommercialApiTestCase
|
||||
self::assertSame('L\'adresse email n\'est pas valide.', $byPath['email']);
|
||||
}
|
||||
|
||||
/**
|
||||
* ERP-110 : avec read:false sur le POST, un parent introuvable n'est plus
|
||||
* intercepte au stade lecture. Le 404 est desormais porte par
|
||||
* ClientContactProcessor::linkParent (sinon 500 au persist sur client_id
|
||||
* NOT NULL). Le payload est valide pour atteindre le processor (apres la
|
||||
* validation).
|
||||
*/
|
||||
public function testPostContactOnMissingClientReturns404(): void
|
||||
{
|
||||
$client = $this->createAdminClient();
|
||||
|
||||
$client->request('POST', '/api/clients/999999/contacts', [
|
||||
'headers' => ['Content-Type' => self::LD, 'Accept' => self::LD],
|
||||
'json' => ['firstName' => 'Orphan'],
|
||||
]);
|
||||
|
||||
self::assertResponseStatusCodeSame(404);
|
||||
}
|
||||
|
||||
public function testPatchContactNormalizes(): void
|
||||
{
|
||||
$client = $this->createAdminClient();
|
||||
@@ -276,6 +295,32 @@ final class ClientSubResourceApiTest extends AbstractCommercialApiTestCase
|
||||
self::assertResponseStatusCodeSame(201);
|
||||
}
|
||||
|
||||
/**
|
||||
* ERP-110 : POST adresse sur un client inexistant -> 404 porte par
|
||||
* ClientAddressProcessor::linkParent (read:false). Payload valide (site +
|
||||
* categorie, RG-1.10 / RG-1.29) pour atteindre le processor.
|
||||
*/
|
||||
public function testPostAddressOnMissingClientReturns404(): void
|
||||
{
|
||||
$this->skipIfSitesModuleDisabled();
|
||||
$client = $this->createAdminClient();
|
||||
$siteIri = $this->firstSiteIri();
|
||||
$category = $this->createCategory('SECTEUR');
|
||||
|
||||
$client->request('POST', '/api/clients/999999/addresses', [
|
||||
'headers' => ['Content-Type' => self::LD, 'Accept' => self::LD],
|
||||
'json' => [
|
||||
'postalCode' => '75001',
|
||||
'city' => 'Paris',
|
||||
'street' => '2 rue Neuve',
|
||||
'sites' => [$siteIri],
|
||||
'categories' => ['/api/categories/'.$category->getId()],
|
||||
],
|
||||
]);
|
||||
|
||||
self::assertResponseStatusCodeSame(404);
|
||||
}
|
||||
|
||||
// === RIBs ===
|
||||
|
||||
public function testPostRibByAdminReturns201(): void
|
||||
@@ -334,6 +379,23 @@ final class ClientSubResourceApiTest extends AbstractCommercialApiTestCase
|
||||
self::assertResponseStatusCodeSame(201);
|
||||
}
|
||||
|
||||
/**
|
||||
* ERP-110 : POST RIB sur un client inexistant -> 404 porte par
|
||||
* ClientRibProcessor::linkParent (read:false). L'admin porte
|
||||
* commercial.clients.accounting.manage ; payload valide (BIC / IBAN).
|
||||
*/
|
||||
public function testPostRibOnMissingClientReturns404(): void
|
||||
{
|
||||
$client = $this->createAdminClient();
|
||||
|
||||
$client->request('POST', '/api/clients/999999/ribs', [
|
||||
'headers' => ['Content-Type' => self::LD, 'Accept' => self::LD],
|
||||
'json' => ['label' => 'Orphan', 'bic' => self::VALID_BIC, 'iban' => self::VALID_IBAN],
|
||||
]);
|
||||
|
||||
self::assertResponseStatusCodeSame(404);
|
||||
}
|
||||
|
||||
public function testDeleteRibNonLcrReturns204(): void
|
||||
{
|
||||
$client = $this->createAdminClient();
|
||||
|
||||
Reference in New Issue
Block a user