createAdminClient(); $token = $this->token(); $this->seedSupplier($token.' Active'); $this->seedSupplier($token.' Archived', true); $default = $http->request('GET', '/api/suppliers?search='.$token, ['headers' => ['Accept' => self::LD]])->toArray(); self::assertSame(1, $default['totalItems'], 'RG-2.17 : archives exclus par defaut.'); $all = $http->request('GET', '/api/suppliers?search='.$token.'&includeArchived=true', ['headers' => ['Accept' => self::LD]])->toArray(); self::assertSame(2, $all['totalItems'], 'RG-2.17 : ?includeArchived reintegre les archives.'); } public function testListIsSortedByCompanyNameAsc(): void { $http = $this->createAdminClient(); $token = $this->token(); // Inseres dans le desordre ; le tri par defaut doit remonter ALPHA avant ZETA. $this->seedSupplier($token.' Zeta'); $this->seedSupplier($token.' Alpha'); $names = array_map( static fn (array $m): string => (string) $m['companyName'], $http->request('GET', '/api/suppliers?search='.$token, ['headers' => ['Accept' => self::LD]])->toArray()['member'], ); self::assertCount(2, $names); self::assertStringContainsString('ALPHA', $names[0], 'RG-2.17 : tri companyName ASC.'); self::assertStringContainsString('ZETA', $names[1]); } public function testPaginationDisabledReturnsFullCollection(): void { $http = $this->createAdminClient(); $token = $this->token(); for ($i = 0; $i < 3; ++$i) { $this->seedSupplier($token.' Item'.$i); } // ?pagination=false : echappatoire pour alimenter un