using System.Net; using FluentAssertions; using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Options; using Xunit; namespace StellaOps.Cartographer.Tests; public class CartographerProgramTests { [Fact] public async Task HealthEndpoints_ReturnOk() { using var factory = new WebApplicationFactory(); using var client = factory.CreateClient(); var cancellationToken = TestContext.Current.CancellationToken; var health = await client.GetAsync("/healthz", cancellationToken); var ready = await client.GetAsync("/readyz", cancellationToken); health.StatusCode.Should().Be(HttpStatusCode.OK); ready.StatusCode.Should().Be(HttpStatusCode.OK); } [Fact] public void AuthorityOptions_InvalidIssuer_ThrowsOnStart() { using var factory = new WebApplicationFactory().WithWebHostBuilder(builder => { builder.ConfigureAppConfiguration((_, config) => { var settings = new Dictionary { ["Cartographer:Authority:Enabled"] = "true", ["Cartographer:Authority:Issuer"] = "invalid" }; config.AddInMemoryCollection(settings); }); }); Action act = () => factory.CreateClient(); act.Should().Throw(); } }