elsa-core/test/unit/Elsa.ExternalAuthentication.UnitTests/Foundational/ConnectionRevisionCalculatorTests.cs
2026-07-25 02:35:56 +02:00

49 lines
2.2 KiB
C#

using System.Text.Json;
using Elsa.ExternalAuthentication.Models;
using Elsa.ExternalAuthentication.Services;
namespace Elsa.ExternalAuthentication.UnitTests.Foundational;
public class ConnectionRevisionCalculatorTests
{
private readonly ConnectionRevisionCalculator _calculator = new();
[Fact]
public void MaterialRevisionIsCanonicalAndIgnoresPresentationOnlyChanges()
{
var first = ExternalAuthenticationTestData.CreateConnection();
var second = ExternalAuthenticationTestData.CreateConnection();
second.Key = " OIDC ";
second.AdapterSettings = JsonSerializer.SerializeToElement(new { authority = "https://issuer.example", client = new { id = "studio" } });
first.AdapterSettings = JsonSerializer.SerializeToElement(new { client = new { id = "studio" }, authority = "https://issuer.example" });
second.DisplayName = "Corporate login";
second.DisplayOrder = 99;
second.IsPreferred = true;
Assert.Equal(_calculator.CalculateMaterialRevision(first), _calculator.CalculateMaterialRevision(second));
}
[Fact]
public void MaterialRevisionChangesWhenAuthenticationMaterialChanges()
{
var connection = ExternalAuthenticationTestData.CreateConnection();
var revision = _calculator.CalculateMaterialRevision(connection);
connection.SecretBindings["clientSecret"] = new SecretBinding("test", "secret-b");
Assert.NotEqual(revision, _calculator.CalculateMaterialRevision(connection));
}
[Fact]
public void ConfigurationIdsAreStableForNormalizedKeysAndDistinctPerScope()
{
var fromNormalizedKey = ConnectionRevisionCalculator.CalculateConfigurationConnectionId(ConnectionScope.Host, "oidc");
var fromPaddedKey = ConnectionRevisionCalculator.CalculateConfigurationConnectionId(ConnectionScope.Host, " OIDC ");
var fromTenantScope = ConnectionRevisionCalculator.CalculateConfigurationConnectionId(new ConnectionScope(ConnectionScopeKind.Tenant, "tenant-a"), "oidc");
Assert.Equal(fromNormalizedKey, fromPaddedKey);
Assert.NotEqual(fromNormalizedKey, fromTenantScope);
Assert.StartsWith("configuration-", fromNormalizedKey, StringComparison.Ordinal);
}
}