fix(catalog) : retours review M6 — default jsonb mort (states) + constante prefixe storage-type de test
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 49s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 2m23s

This commit is contained in:
Matthieu
2026-06-25 14:20:52 +02:00
parent 5dc5e703e3
commit 30e7839615
2 changed files with 8 additions and 3 deletions
+3 -1
View File
@@ -128,7 +128,9 @@ final class Version20260625110000 extends AbstractMigration
id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
code VARCHAR(50) NOT NULL,
name VARCHAR(255) NOT NULL,
states JSONB DEFAULT '[]'::jsonb NOT NULL,
-- Pas de DEFAULT : un tableau vide violerait chk_product_states_not_empty
-- (RG-6.02). La colonne est toujours renseignee par l'app (Processor/ORM).
states JSONB NOT NULL,
manufactured BOOLEAN DEFAULT FALSE NOT NULL,
contains_molasses BOOLEAN DEFAULT FALSE NOT NULL,
category_id INT NOT NULL,
@@ -27,6 +27,9 @@ final class ProductExportControllerTest extends AbstractCatalogApiTestCase
private const string XLSX_MIME = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
private const string EXPORT_URL = '/api/products/export.xlsx';
/** Prefixe des codes de types de stockage seedes par ce test (cible du cleanup tearDown). */
private const string TEST_STORAGE_PREFIX = 'TEST_';
/**
* Purge des produits + types de stockage de test AVANT le cleanup parent :
* product reference category / site / storage_type en FK ON DELETE RESTRICT,
@@ -39,7 +42,7 @@ final class ProductExportControllerTest extends AbstractCatalogApiTestCase
$em = $this->getEm();
$em->createQuery('DELETE FROM '.Product::class)->execute();
$em->createQuery('DELETE FROM '.StorageType::class.' s WHERE s.code LIKE :prefix')
->setParameter('prefix', self::TEST_CATEGORY_TYPE_PREFIX.'%')
->setParameter('prefix', self::TEST_STORAGE_PREFIX.'%')
->execute()
;
@@ -200,7 +203,7 @@ final class ProductExportControllerTest extends AbstractCatalogApiTestCase
$product->setContainsMolasses($containsMolasses);
$product->setCategory($category ?? $this->createCategory());
$product->addSite($site ?? $this->firstSite());
$product->addStorageType($storageType ?? $this->seedStorageType('TEST_'.strtoupper(substr(bin2hex(random_bytes(4)), 0, 8))));
$product->addStorageType($storageType ?? $this->seedStorageType(self::TEST_STORAGE_PREFIX.strtoupper(substr(bin2hex(random_bytes(4)), 0, 8))));
$product->setDeletedAt($deletedAt);
$em->persist($product);