using System.Net.Http.Json; using FluentAssertions; using FluentAssertions.Extensions; using Vegasco.WebApi.Info; namespace WebApi.Tests.Integration.Info; [Collection(SharedTestCollection.Name)] public class GetServerInfoTests { private readonly WebAppFactory _factory; public GetServerInfoTests(WebAppFactory factory) { _factory = factory; } [Fact] public async Task GetServerInfo_ShouldReturnServerInfo_WhenCalled() { // Arrange // Act using HttpResponseMessage response = await _factory.HttpClient.GetAsync("/v1/info/server"); // Assert response.IsSuccessStatusCode.Should().BeTrue(); var serverInfo = await response.Content.ReadFromJsonAsync(); serverInfo!.Environment.Should().NotBeEmpty(); serverInfo.CommitDate.Should().BeAfter(23.August(2024)) .And.NotBeAfter(DateTime.Now); serverInfo.CommitId.Should().MatchRegex(@"[0-9a-f]{40}"); serverInfo.FullVersion.Should().MatchRegex(@"\d\.\d\.\d(-[0-9a-zA-Z]+)?(\+g?[0-9a-f]{10})?"); } }