authenticatedClient('admin', 'admin'); $response = $client->request('GET', '/api/audit-logs'); self::assertSame(200, $response->getStatusCode()); $data = $response->toArray(); self::assertArrayHasKey('totalItems', $data, 'La collection audit-logs doit exposer totalItems.'); self::assertArrayHasKey('view', $data, 'La collection audit-logs doit exposer view (pagination active).'); self::assertIsArray($data['member'], 'member doit etre un tableau.'); // Le nouveau defaut global est 10 (etait 30 dans AuditLogResource avant ERP-72). self::assertLessThanOrEqual( 10, count($data['member']), 'La page par defaut ne doit pas depasser 10 items (default global ERP-72).', ); } /** * Un itemsPerPage excessif (99999) doit etre plafonne au maximum global (50). * Teste la regression specifique du paginator DBAL custom (DbalPaginator) qui * pourrait ignorer la limite si la logique de cap n'est pas appliquee cote provider. */ public function testAuditLogItemsPerPageCappedAt50(): void { $client = $this->authenticatedClient('admin', 'admin'); $response = $client->request('GET', '/api/audit-logs?itemsPerPage=99999'); self::assertSame(200, $response->getStatusCode()); $data = $response->toArray(); self::assertIsArray($data['member'], 'member doit etre un tableau.'); // Le cap global est 50 : jamais plus d'items par page que le maximum. self::assertLessThanOrEqual( 50, count($data['member']), 'itemsPerPage=99999 doit etre plafonne a 50 (maximum global ERP-72).', ); } }