using StellaOps.Auth.Abstractions; using StellaOps.Cartographer.Options; using Xunit; namespace StellaOps.Cartographer.Tests.Options; public class CartographerAuthorityOptionsConfiguratorTests { [Fact] public void ApplyDefaults_AddsGraphScopes() { var options = new CartographerAuthorityOptions(); CartographerAuthorityOptionsConfigurator.ApplyDefaults(options); Assert.Contains(StellaOpsScopes.GraphRead, options.RequiredScopes); Assert.Contains(StellaOpsScopes.GraphWrite, options.RequiredScopes); } [Fact] public void ApplyDefaults_DoesNotDuplicateScopes() { var options = new CartographerAuthorityOptions(); options.RequiredScopes.Add("GRAPH:READ"); options.RequiredScopes.Add(StellaOpsScopes.GraphWrite); CartographerAuthorityOptionsConfigurator.ApplyDefaults(options); Assert.Equal(2, options.RequiredScopes.Count); } [Fact] public void Validate_AllowsDisabledConfiguration() { var options = new CartographerAuthorityOptions(); options.Validate(); // should not throw when disabled } [Fact] public void Validate_ThrowsForInvalidIssuer() { var options = new CartographerAuthorityOptions { Enabled = true, Issuer = "invalid" }; Assert.Throws(() => options.Validate()); } }