withServerVariables(['REMOTE_ADDR' => '192.168.1.100']) ->getJson('/api/v1/health'); // THEN $response->assertStatus(200); expect($response->headers->has('X-RateLimit-Limit'))->toBeTrue(); expect($response->headers->has('X-RateLimit-Remaining'))->toBeTrue(); }); it('does not resolve rate limit key from untrusted raw X-Forwarded-For header', function (): void { // GIVEN /** @var \Tests\TestCase $this */ $clientIp = '10.20.30.40'; // WHEN: Making request with spoofed X-Forwarded-For header $response = $this->withServerVariables(['REMOTE_ADDR' => $clientIp]) ->withHeaders(['X-Forwarded-For' => '203.0.113.195']) ->getJson('/api/v1/health'); // THEN $response->assertStatus(200); }); });