Repair router frontdoor route boundaries and service prefixes
This commit is contained in:
@@ -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()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user