22541 extract breadcrumb route-map helpers and add precedence guard tests

This commit is contained in:
2026-04-09 10:25:47 +01:00
parent 78d62c541f
commit 5f6dde782a
6 changed files with 185 additions and 20 deletions
@@ -60,17 +60,25 @@ test("breadcrumbs/merged resolver renders mapped routes through single helper in
const source = loadBreadcrumbSource();
assert.strictEqual(
source.includes("const mappedRouteRendererMaps = ["),
source.includes('from "../lib/routing/breadcrumbRouteMaps"'),
true,
"Expected grouped mapped route renderer map composition to exist"
"Expected breadcrumbs to import shared breadcrumb route-map helper module"
);
assert.strictEqual(
source.includes(
"const getMappedRendererByPath = (path, routeRendererMap) =>"
"const mappedRouteRendererMaps = buildBreadcrumbRendererMaps({"
),
true,
"Expected shared mapped renderer lookup helper to exist"
"Expected grouped mapped route renderer map composition to use helper builder"
);
assert.strictEqual(
source.includes(
"return resolveMappedRouteRendererByMaps(path, mappedRouteRendererMaps);"
),
true,
"Expected resolver to delegate to shared route-map resolver helper"
);
assert.strictEqual(
@@ -104,6 +112,32 @@ test("breadcrumbs/merged resolver renders mapped routes through single helper in
false,
"Expected /myportal/addresssearchresults explicit branch to be removed after mapping"
);
const mapBuilderCallIndex = source.indexOf(
"const mappedRouteRendererMaps = buildBreadcrumbRendererMaps({"
);
const mapBuilderSlice = source.slice(
mapBuilderCallIndex,
mapBuilderCallIndex + 300
);
const simpleRouteOrderIndex = mapBuilderSlice.indexOf(
"simpleRouteRenderersByPath"
);
const simpleLinkTextPairOrderIndex = mapBuilderSlice.indexOf(
"simpleLinkTextPairRenderersByPath"
);
const simpleMyPortalOrderIndex = mapBuilderSlice.indexOf(
"simpleMyPortalRouteRenderersByPath"
);
assert.strictEqual(
simpleRouteOrderIndex >= 0 &&
simpleLinkTextPairOrderIndex > simpleRouteOrderIndex &&
simpleMyPortalOrderIndex > simpleLinkTextPairOrderIndex,
true,
"Expected map builder call to preserve explicit route-map ordering (simple -> link-text -> myportal)"
);
});
test("breadcrumbs/dynamic callback branch remains explicit for myportal case incident route", async () => {