fix(test) : RBAC #344 - role test cleanup + SystemRoles constant + assertion seuil
This commit is contained in:
@@ -8,6 +8,7 @@ use ApiPlatform\Symfony\Bundle\Test\ApiTestCase;
|
|||||||
use ApiPlatform\Symfony\Bundle\Test\Client;
|
use ApiPlatform\Symfony\Bundle\Test\Client;
|
||||||
use App\Module\Core\Domain\Entity\Permission;
|
use App\Module\Core\Domain\Entity\Permission;
|
||||||
use App\Module\Core\Domain\Entity\Role;
|
use App\Module\Core\Domain\Entity\Role;
|
||||||
|
use App\Module\Core\Domain\Security\SystemRoles;
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -104,7 +105,7 @@ final class RoleApiTest extends ApiTestCase
|
|||||||
'headers' => ['Content-Type' => 'application/ld+json'],
|
'headers' => ['Content-Type' => 'application/ld+json'],
|
||||||
'json' => [
|
'json' => [
|
||||||
// `admin` est un role systeme charge par les fixtures.
|
// `admin` est un role systeme charge par les fixtures.
|
||||||
'code' => 'admin',
|
'code' => SystemRoles::ADMIN_CODE,
|
||||||
'label' => 'Tentative de doublon',
|
'label' => 'Tentative de doublon',
|
||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
@@ -157,7 +158,7 @@ final class RoleApiTest extends ApiTestCase
|
|||||||
$data = $response->toArray();
|
$data = $response->toArray();
|
||||||
self::assertArrayHasKey('member', $data);
|
self::assertArrayHasKey('member', $data);
|
||||||
// Au moins admin systeme + user systeme + test_editor + test_viewer.
|
// Au moins admin systeme + user systeme + test_editor + test_viewer.
|
||||||
self::assertGreaterThanOrEqual(2, $data['totalItems']);
|
self::assertGreaterThanOrEqual(4, $data['totalItems']);
|
||||||
$codes = array_column($data['member'], 'code');
|
$codes = array_column($data['member'], 'code');
|
||||||
self::assertContains('test_editor', $codes);
|
self::assertContains('test_editor', $codes);
|
||||||
}
|
}
|
||||||
@@ -283,10 +284,12 @@ final class RoleApiTest extends ApiTestCase
|
|||||||
{
|
{
|
||||||
$em = $this->getEm();
|
$em = $this->getEm();
|
||||||
|
|
||||||
// Ordre important : role_permission lie aux deux, on vide les roles
|
// Le cascade FK de la migration #343 (ON DELETE CASCADE sur
|
||||||
// custom d'abord (la jointure est cascade supprimee par Doctrine lors
|
// role_permission.role_id et permission_id) nettoie automatiquement
|
||||||
// du remove() du cote proprietaire). En DQL bulk on passe par les
|
// role_permission lors du DELETE SQL emis par Doctrine, meme via DQL
|
||||||
// entites, Doctrine genere les DELETE de la table de jointure.
|
// bulk delete : le cascade est applique au niveau FK par PostgreSQL,
|
||||||
|
// pas par l'Unit of Work Doctrine. Verifie par comptage avant/apres
|
||||||
|
// runs successifs de la suite (stable a la ligne de base systeme).
|
||||||
$em->createQuery(
|
$em->createQuery(
|
||||||
'DELETE FROM '.Role::class.' r WHERE r.code LIKE :prefix'
|
'DELETE FROM '.Role::class.' r WHERE r.code LIKE :prefix'
|
||||||
)->setParameter('prefix', self::TEST_ROLE_PREFIX.'%')->execute();
|
)->setParameter('prefix', self::TEST_ROLE_PREFIX.'%')->execute();
|
||||||
|
|||||||
Reference in New Issue
Block a user