using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; using ZB.MOM.WW.Telemetry; namespace ZB.MOM.WW.Telemetry.Tests; public sealed class MapZbMetricsTests { [Fact] public async Task MapZbMetrics_ServesPrometheusEndpoint() { var builder = WebApplication.CreateBuilder(); builder.WebHost.UseUrls("http://127.0.0.1:0"); builder.AddZbTelemetry(o => { o.ServiceName = "t"; o.Exporter = ZbExporter.Prometheus; o.Meters = ["Test.Meter"]; }); await using var app = builder.Build(); app.MapZbMetrics(); await app.StartAsync(); var address = app.Urls.First(); using var client = new HttpClient { BaseAddress = new Uri(address) }; var response = await client.GetAsync("/metrics"); Assert.Equal(System.Net.HttpStatusCode.OK, response.StatusCode); Assert.NotNull(response.Content.Headers.ContentType); Assert.Equal("text/plain", response.Content.Headers.ContentType!.MediaType); await app.StopAsync(); } }