using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using StellaOps.Scanner.Surface.Env; namespace StellaOps.Scanner.Surface.Env.Tests; public sealed class SurfaceEnvironmentFeatureFlagTests { [Fact] public void Build_ReturnsFlags_LowerCased() { Environment.SetEnvironmentVariable("SCANNER_SURFACE_FEATURES", "Validation,PreWarm , unknown"); Environment.SetEnvironmentVariable("SCANNER_SURFACE_FS_ENDPOINT", "https://surface.example.test"); try { var services = CreateServices(); var environment = SurfaceEnvironmentFactory.Create(services, options => { options.KnownFeatureFlags.Add("validation"); options.KnownFeatureFlags.Add("prewarm"); options.RequireSurfaceEndpoint = true; }); Assert.Contains("validation", environment.Settings.FeatureFlags); Assert.Contains("prewarm", environment.Settings.FeatureFlags); Assert.Contains("unknown", environment.Settings.FeatureFlags); } finally { Environment.SetEnvironmentVariable("SCANNER_SURFACE_FEATURES", null); Environment.SetEnvironmentVariable("SCANNER_SURFACE_FS_ENDPOINT", null); } } private static IServiceProvider CreateServices() { var services = new ServiceCollection(); services.AddSingleton(new ConfigurationBuilder().Build()); services.AddLogging(builder => builder.ClearProviders()); return services.BuildServiceProvider(); } }