test(api) : verrouille la pagination par defaut (Role, Permission) + doc AuditLogProvider sur ?pagination=false
This commit is contained in:
@@ -71,6 +71,38 @@ final class PermissionApiTest extends AbstractApiTestCase
|
||||
self::assertGreaterThanOrEqual(3, $data['totalItems']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verrouille le chemin paginE PAR DEFAUT (ERP-72) : sans `?pagination=false`,
|
||||
* `/api/permissions` doit borner la page au defaut global (10) et exposer
|
||||
* `view`. Les autres tests de filtre passent `?pagination=false` et
|
||||
* n'exercent donc plus ce contrat — on le reteste ici de maniere isolee.
|
||||
*
|
||||
* On seed 12 permissions de test pour garantir un total > 10 quelle que soit
|
||||
* la quantite de permissions reelles presentes en base.
|
||||
*/
|
||||
public function testDefaultCollectionIsPaginatedToGlobalDefault(): void
|
||||
{
|
||||
$em = $this->getEm();
|
||||
for ($i = 1; $i <= 12; ++$i) {
|
||||
$em->persist(new Permission(sprintf('test.core.pagination.perm_%d', $i), sprintf('Perm pagination %d (test)', $i), 'core'));
|
||||
}
|
||||
$em->flush();
|
||||
$em->clear();
|
||||
|
||||
$client = $this->authenticatedClient('admin', 'admin');
|
||||
$response = $client->request('GET', '/api/permissions');
|
||||
|
||||
self::assertResponseIsSuccessful();
|
||||
$data = $response->toArray();
|
||||
|
||||
// La page par defaut ne doit jamais depasser le maximum global (10).
|
||||
self::assertLessThanOrEqual(10, count($data['member']), 'La page par defaut doit etre bornee a 10 items.');
|
||||
// Avec >= 12 permissions de test (+ reelles), le total depasse une page.
|
||||
self::assertGreaterThan(10, $data['totalItems']);
|
||||
// `view` n'est present que lorsque la collection est reellement paginee.
|
||||
self::assertArrayHasKey('view', $data, 'La collection doit exposer view quand totalItems > itemsPerPage.');
|
||||
}
|
||||
|
||||
public function testCollectionFilterByModule(): void
|
||||
{
|
||||
$client = $this->authenticatedClient('admin', 'admin');
|
||||
|
||||
Reference in New Issue
Block a user