set('services.self_render.endpoint', ''); config()->set('services.self_render.health_url', ''); expect((new SelfRenderLivenessProbe)->check()->light)->toBe('grey'); }); it('зелёный при 200', function () { config()->set('services.self_render.health_url', 'https://vm.local/health'); Http::fake(['vm.local/health' => Http::response('ok', 200)]); expect((new SelfRenderLivenessProbe)->check()->light)->toBe('green'); }); it('красный при 500 и при сетевой ошибке', function () { config()->set('services.self_render.health_url', 'https://vm.local/health'); Http::fake(['vm.local/health' => Http::response('err', 500)]); expect((new SelfRenderLivenessProbe)->check()->light)->toBe('red'); Http::fake(fn () => throw new RuntimeException('down')); expect((new SelfRenderLivenessProbe)->check()->light)->toBe('red'); }); it('зелёный при 404 (GET к POST-ручке — сервис жив)', function () { config()->set('services.self_render.health_url', 'https://vm.local/render'); Http::fake(['vm.local/render' => Http::response('Not Found', 404)]); expect((new SelfRenderLivenessProbe)->check()->light)->toBe('green'); });