| File: Integration\HealthTests.cs | Web Access |
| Project: src\tests\Aspire.Dashboard.Tests\Aspire.Dashboard.Tests.csproj (Aspire.Dashboard.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Aspire.Dashboard.Utils; using Microsoft.AspNetCore.InternalTesting; using System.Net; using Xunit; namespace Aspire.Dashboard.Tests.Integration; public class HealthTests(ITestOutputHelper testOutputHelper) { [Fact] public async Task HealthEndpoint_SendRequest_200Response() { // Arrange await using var app = IntegrationTestHelpers.CreateDashboardWebApplication(testOutputHelper); await app.StartAsync().DefaultTimeout(); await MakeRequestAndAssert($"http://{app.FrontendSingleEndPointAccessor().EndPoint}", HttpVersion.Version11).DefaultTimeout(); await MakeRequestAndAssert($"http://{app.OtlpServiceHttpEndPointAccessor().EndPoint}", HttpVersion.Version11).DefaultTimeout(); await MakeRequestAndAssert($"http://{app.OtlpServiceGrpcEndPointAccessor().EndPoint}", HttpVersion.Version20).DefaultTimeout(); static async Task MakeRequestAndAssert(string basePath, Version httpVersion) { using var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false }; using var client = new HttpClient(httpClientHandler) { BaseAddress = new Uri(basePath) }; // Act var request = new HttpRequestMessage(HttpMethod.Get, $"/{DashboardUrls.HealthBasePath}"); request.Version = httpVersion; request.VersionPolicy = HttpVersionPolicy.RequestVersionExact; var response = await client.SendAsync(request).DefaultTimeout(); // Assert Assert.Equal(HttpStatusCode.OK, response.StatusCode); } } }