Phred/tests/Feature/M15CachingTest.php

43 lines
1.1 KiB
PHP
Raw Permalink Normal View History

2026-01-06 17:02:05 +00:00
<?php
declare(strict_types=1);
namespace Phred\Tests\Feature;
use PHPUnit\Framework\TestCase;
use Phred\Http\Kernel;
use Nyholm\Psr7\ServerRequest;
use Phred\Http\RequestContext;
class M15CachingTest extends TestCase
{
protected function setUp(): void
{
// Clear cache before each test
$cacheDir = getcwd() . '/storage/cache';
if (is_dir($cacheDir)) {
foreach (glob($cacheDir . '/*') ?: [] as $file) {
unlink($file);
}
}
}
public function test_conditional_request_with_etag(): void
{
$kernel = new Kernel();
$request1 = new ServerRequest('GET', '/_phred/health');
$response1 = $kernel->handle($request1);
$this->assertEquals(200, $response1->getStatusCode());
$etag = $response1->getHeaderLine('ETag');
$this->assertNotEmpty($etag);
$request2 = (new ServerRequest('GET', '/_phred/health'))
->withHeader('If-None-Match', $etag);
$response2 = $kernel->handle($request2);
$this->assertEquals(304, $response2->getStatusCode());
}
}