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']);
|
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
|
public function testPatchContactNormalizes(): void
|
||||||
{
|
{
|
||||||
$client = $this->createAdminClient();
|
$client = $this->createAdminClient();
|
||||||
@@ -276,6 +295,32 @@ final class ClientSubResourceApiTest extends AbstractCommercialApiTestCase
|
|||||||
self::assertResponseStatusCodeSame(201);
|
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 ===
|
// === RIBs ===
|
||||||
|
|
||||||
public function testPostRibByAdminReturns201(): void
|
public function testPostRibByAdminReturns201(): void
|
||||||
@@ -334,6 +379,23 @@ final class ClientSubResourceApiTest extends AbstractCommercialApiTestCase
|
|||||||
self::assertResponseStatusCodeSame(201);
|
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
|
public function testDeleteRibNonLcrReturns204(): void
|
||||||
{
|
{
|
||||||
$client = $this->createAdminClient();
|
$client = $this->createAdminClient();
|
||||||
|
|||||||
Reference in New Issue
Block a user