public async Task have_all_results_included_when_there_are_three_checks_with_different_results() { var sut = new TestServer(new WebHostBuilder() .UseStartup <DefaultStartup>() .ConfigureServices(services => { services.AddHealthChecks() .AddCheck("healthy_check", check => HealthCheckResult.Healthy()) .AddCheck("degraded_check", check => HealthCheckResult.Degraded()) .AddCheck("unhealthy_check", check => HealthCheckResult.Unhealthy()); }) .Configure(app => { app.UseHealthChecks("/health", new HealthCheckOptions { ResponseWriter = (context, report) => PrometheusResponseWriter.WritePrometheusResultText(context, report, alwaysReturnHttp200Ok: true) }); })); var response = await sut.CreateRequest("/health") .GetAsync(); response.StatusCode.Should().Be(HttpStatusCode.OK); var resultAsString = await response.Content.ReadAsStringAsync(); resultAsString.Should().ContainCheckAndResult("healthy_check", HealthStatus.Healthy); resultAsString.Should().ContainCheckAndResult("degraded_check", HealthStatus.Degraded); resultAsString.Should().ContainCheckAndResult("unhealthy_check", HealthStatus.Unhealthy); }
public async Task be_unhealthy_and_return_200_when_health_checks_are_and_configured_to_return_always_200() { var sut = new TestServer(new WebHostBuilder() .UseStartup <DefaultStartup>() .ConfigureServices(services => { services.AddHealthChecks() .AddCheck("fake", check => HealthCheckResult.Unhealthy()); }) .Configure(app => { app.UseHealthChecks("/health", new HealthCheckOptions { ResponseWriter = (context, report) => PrometheusResponseWriter.WritePrometheusResultText(context, report, alwaysReturnHttp200Ok: true) }); })); var response = await sut.CreateRequest("/health") .GetAsync(); response.StatusCode.Should().Be(HttpStatusCode.OK); var resultAsString = await response.Content.ReadAsStringAsync(); resultAsString.Should().ContainCheckAndResult("fake", HealthStatus.Unhealthy); }
public async Task be_healthy_when_health_checks_are() { var sut = new TestServer(new WebHostBuilder() .UseStartup <DefaultStartup>() .ConfigureServices(services => { services.AddHealthChecks() .AddCheck("fake", check => HealthCheckResult.Healthy()); }) .Configure(app => { app.UseHealthChecks("/health", new HealthCheckOptions { ResponseWriter = (context, report) => PrometheusResponseWriter.WritePrometheusResultText(context, report) }); })); var response = await sut.CreateRequest("/health") .GetAsync(); response.EnsureSuccessStatusCode(); var resultAsString = await response.Content.ReadAsStringAsync(); resultAsString.Should().ContainCheckAndResult("fake", HealthStatus.Healthy); }