1
0
Fork 0
get-installer-bootstrap/tests/Docker/ComposeHealthcheckTest.php
2026-05-05 11:54:59 +02:00

45 lines
1.8 KiB
PHP

<?php
namespace App\Tests\Docker;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Yaml\Yaml;
final class ComposeHealthcheckTest extends TestCase
{
public function testServicesDeclareHealthchecks(): void
{
$compose = Yaml::parseFile(__DIR__.'/../../compose.yaml');
self::assertSame(
[
'CMD-SHELL',
'php -r \'exit(@fsockopen("127.0.0.1", 9000) ? 0 : 1);\'',
],
$compose['services']['app']['healthcheck']['test'] ?? null
);
self::assertSame('10s', $compose['services']['app']['healthcheck']['interval'] ?? null);
self::assertSame('3s', $compose['services']['app']['healthcheck']['timeout'] ?? null);
self::assertSame(3, $compose['services']['app']['healthcheck']['retries'] ?? null);
self::assertSame('20s', $compose['services']['app']['healthcheck']['start_period'] ?? null);
self::assertSame(
['CMD-SHELL', 'wget -q --spider http://127.0.0.1/ || exit 1'],
$compose['services']['nginx']['healthcheck']['test'] ?? null
);
self::assertSame('10s', $compose['services']['nginx']['healthcheck']['interval'] ?? null);
self::assertSame('3s', $compose['services']['nginx']['healthcheck']['timeout'] ?? null);
self::assertSame(3, $compose['services']['nginx']['healthcheck']['retries'] ?? null);
self::assertSame('20s', $compose['services']['nginx']['healthcheck']['start_period'] ?? null);
}
public function testNginxWaitsForHealthyApp(): void
{
$compose = Yaml::parseFile(__DIR__.'/../../compose.yaml');
self::assertSame(
['app' => ['condition' => 'service_healthy']],
$compose['services']['nginx']['depends_on'] ?? null
);
}
}