using System.Net; using System.Net.Http.Json; using System.Text.Json; using StellaOps.Auth.Abstractions; using StellaOps.Scanner.WebService.Endpoints; using StellaOps.TestKit; namespace StellaOps.Scanner.WebService.Tests; public sealed class SliceLocalizationEndpointsTests { [Trait("Category", TestCategories.Unit)] [Fact] public async Task QuerySlice_WithoutScanId_WithGermanLocale_ReturnsLocalizedError() { await using var factory = ScannerApplicationFactory.CreateLightweight().WithOverrides( configureConfiguration: static config => { config["scanner:authority:enabled"] = "false"; }); await factory.InitializeAsync(); using var client = factory.CreateClient(); using var request = new HttpRequestMessage(HttpMethod.Post, "/api/slices/query") { Content = JsonContent.Create(new SliceQueryRequestDto { CveId = "CVE-2024-1234" }) }; request.Headers.TryAddWithoutValidation(StellaOpsHttpHeaderNames.Tenant, "tenant-a"); request.Headers.TryAddWithoutValidation("X-Locale", "de-DE"); var response = await client.SendAsync(request); var content = await response.Content.ReadAsStringAsync(); Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); using var payload = JsonDocument.Parse(content); Assert.Equal("scanId ist erforderlich", payload.RootElement.GetProperty("error").GetString()); } }