Why: standardize session login/refresh/logout/me behavior for web clients behind thalos security boundaries. What: add canonical routes, cookie policy handling, grpc session calls, compatibility aliases, standardized auth errors, updated contracts, tests, and docs. Rule: keep BFF as edge adapter over service contracts and preserve identity ownership in thalos.
43 lines
1.6 KiB
C#
43 lines
1.6 KiB
C#
using Core.Blueprint.Common.Contracts;
|
|
using BuildingBlock.Identity.Contracts.Conventions;
|
|
using Thalos.Bff.Contracts.Api;
|
|
using Thalos.Bff.Contracts.Conventions;
|
|
|
|
namespace Thalos.Bff.Application.UnitTests;
|
|
|
|
public class ContractShapeTests
|
|
{
|
|
[Fact]
|
|
public void IssueTokenApiRequest_WhenCreated_StoresCorrelationId()
|
|
{
|
|
var request = new IssueTokenApiRequest("user-1", "tenant-1", "corr-123");
|
|
|
|
Assert.Equal("user-1", request.SubjectId);
|
|
Assert.Equal("tenant-1", request.TenantId);
|
|
Assert.Equal("corr-123", request.CorrelationId);
|
|
Assert.Equal(IdentityAuthProvider.InternalJwt, request.Provider);
|
|
}
|
|
|
|
[Fact]
|
|
public void SessionLoginApiRequest_WhenCreated_UsesProviderDefault()
|
|
{
|
|
var request = new SessionLoginApiRequest("user-2", "tenant-2", "corr-456");
|
|
|
|
Assert.Equal("user-2", request.SubjectId);
|
|
Assert.Equal("tenant-2", request.TenantId);
|
|
Assert.Equal("corr-456", request.CorrelationId);
|
|
Assert.Equal(IdentityAuthProvider.InternalJwt, request.Provider);
|
|
}
|
|
|
|
[Fact]
|
|
public void ThalosBffPackageContract_WhenCreated_UsesBlueprintDescriptorContract()
|
|
{
|
|
IBlueprintPackageContract contract = new ThalosBffPackageContract();
|
|
|
|
Assert.Equal("Thalos.Bff.Contracts", contract.Descriptor.PackageId);
|
|
Assert.Equal(PackageVersionPolicy.Minor, contract.Descriptor.VersionPolicy);
|
|
Assert.Contains("Core.Blueprint.Common", contract.Descriptor.DependencyPackageIds);
|
|
Assert.Contains("BuildingBlock.Identity.Contracts", contract.Descriptor.DependencyPackageIds);
|
|
}
|
|
}
|