Repair router frontdoor route boundaries and service prefixes

This commit is contained in:
master
2026-03-10 12:28:48 +02:00
parent 6f808c3b3d
commit 1b6051662f
9 changed files with 223 additions and 5 deletions

View File

@@ -79,6 +79,40 @@ public sealed class StellaOpsRouteResolverTests
Assert.Equal("/health", result.RegexMatch.Groups[2].Value);
}
[Fact]
public void Resolve_SegmentBoundPolicyRoot_DoesNotCaptureStaticChunkPaths()
{
var resolver = new StellaOpsRouteResolver(
[
MakeRoute(
@"^/policy(?=/|$)(.*)",
isRegex: true,
translatesTo: "http://policy-gateway.stella-ops.local/policy$1"),
MakeRoute(
"/",
type: StellaOpsRouteType.StaticFiles,
translatesTo: "/app/wwwroot")
]);
var chunkResult = resolver.Resolve(new PathString("/policy-decisioning.routes-ABCDE.js"));
var policyRootResult = resolver.Resolve(new PathString("/policy"));
var policyChildResult = resolver.Resolve(new PathString("/policy/overview"));
Assert.NotNull(chunkResult.Route);
Assert.Equal(StellaOpsRouteType.StaticFiles, chunkResult.Route!.Type);
Assert.Null(chunkResult.RegexMatch);
Assert.NotNull(policyRootResult.Route);
Assert.Equal(@"^/policy(?=/|$)(.*)", policyRootResult.Route!.Path);
Assert.NotNull(policyRootResult.RegexMatch);
Assert.Equal(string.Empty, policyRootResult.RegexMatch!.Groups[1].Value);
Assert.NotNull(policyChildResult.Route);
Assert.Equal(@"^/policy(?=/|$)(.*)", policyChildResult.Route!.Path);
Assert.NotNull(policyChildResult.RegexMatch);
Assert.Equal("/overview", policyChildResult.RegexMatch!.Groups[1].Value);
}
[Fact]
public void Resolve_NoMatch_ReturnsNull()
{