< Summary

Information
Class: ProjectTemplate.Web.Extensions.HealthCheckExtensions
Assembly: ProjectTemplate.Web
File(s): /home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Web/Extensions/HealthCheckExtensions.cs
Line coverage
83%
Covered lines: 10
Uncovered lines: 2
Coverable lines: 12
Total lines: 43
Line coverage: 83.3%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
AddApplicationHealthChecks(...)100%11100%
MapApplicationHealthChecks(...)100%1180%

File(s)

/home/runner/work/NetCoreApplicationTemplate/NetCoreApplicationTemplate/src/ProjectTemplate.Web/Extensions/HealthCheckExtensions.cs

#LineLine coverage
 1using Microsoft.AspNetCore.Diagnostics.HealthChecks;
 2
 3namespace ProjectTemplate.Web.Extensions;
 4
 5/// <summary>
 6/// Provides extension methods for registering and mapping application health check endpoints.
 7/// </summary>
 8public static class HealthCheckExtensions
 9{
 10    /// <summary>
 11    /// Registers baseline ASP.NET Core health check services.
 12    /// </summary>
 13    /// <param name="services">The service collection used to register health checks.</param>
 14    /// <returns>The original <see cref="IServiceCollection"/> for chaining.</returns>
 15    public static IServiceCollection AddApplicationHealthChecks(this IServiceCollection services)
 16    {
 14817        services.AddHealthChecks();
 18
 14819        return services;
 20    }
 21
 22    /// <summary>
 23    /// Maps baseline health check endpoints for infrastructure, reverse proxies, and hosting platforms.
 24    /// </summary>
 25    /// <param name="app">The web application used to map health check endpoints.</param>
 26    /// <returns>The original <see cref="WebApplication"/> for chaining.</returns>
 27    public static WebApplication MapApplicationHealthChecks(this WebApplication app)
 28    {
 12829        app.MapHealthChecks("/health");
 30
 12831        app.MapHealthChecks("/health/ready", new HealthCheckOptions
 12832        {
 033            Predicate = healthCheck => healthCheck.Tags.Contains("ready")
 12834        });
 35
 12836        app.MapHealthChecks("/health/live", new HealthCheckOptions
 12837        {
 038            Predicate = _ => false
 12839        });
 40
 12841        return app;
 42    }
 43}