using Microsoft.Extensions.Logging; namespace AFrameArchitectureSample.Tests; public class WebTests { private static readonly TimeSpan DefaultTimeout = TimeSpan.FromSeconds(30); [Fact] public async Task GetWebResourceRootReturnsOkStatusCode() { // Arrange var cancellationToken = TestContext.Current.CancellationToken; var appHost = await DistributedApplicationTestingBuilder.CreateAsync(cancellationToken); appHost.Services.AddLogging(logging => { logging.SetMinimumLevel(LogLevel.Debug); // Override the logging filters from the app's configuration logging.AddFilter(appHost.Environment.ApplicationName, LogLevel.Debug); logging.AddFilter("Aspire.", LogLevel.Debug); // To output logs to the xUnit.net ITestOutputHelper, consider adding a package from https://www.nuget.org/packages?q=xunit+logging }); appHost.Services.ConfigureHttpClientDefaults(clientBuilder => { clientBuilder.AddStandardResilienceHandler(); }); await using var app = await appHost.BuildAsync(cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); await app.StartAsync(cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); // Act var httpClient = app.CreateHttpClient("webfrontend"); await app.ResourceNotifications.WaitForResourceHealthyAsync("webfrontend", cancellationToken).WaitAsync(DefaultTimeout, cancellationToken); var response = await httpClient.GetAsync("/", cancellationToken); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); } }