22541 extract new appeal breadcrumb branch into mapped renderer group

This commit is contained in:
2026-04-09 14:39:30 +01:00
parent 17795f20c7
commit 2a84056a76
6 changed files with 106 additions and 23 deletions
@@ -57,6 +57,9 @@ test("buildBreadcrumbRendererMaps returns grouped maps in explicit precedence or
const simpleMyPortalRouteRenderersByPath = {
"/gamma": () => "gamma"
};
const newAppealRouteRenderersByPath = {
"/eta": () => "eta"
};
const caseDetailRouteRenderersByPath = {
"/delta": () => "delta"
};
@@ -68,12 +71,13 @@ test("buildBreadcrumbRendererMaps returns grouped maps in explicit precedence or
simpleRouteRenderersByPath,
simpleLinkTextPairRenderersByPath,
simpleMyPortalRouteRenderersByPath,
newAppealRouteRenderersByPath,
caseDetailRouteRenderersByPath,
detailAndAccountRouteRenderersByPath
});
assert.ok(Array.isArray(result), "Expected grouped maps array");
assert.strictEqual(result.length, 5, "Expected five grouped route maps");
assert.strictEqual(result.length, 6, "Expected six grouped route maps");
assert.strictEqual(
result[0],
simpleRouteRenderersByPath,
@@ -91,13 +95,18 @@ test("buildBreadcrumbRendererMaps returns grouped maps in explicit precedence or
);
assert.strictEqual(
result[3],
caseDetailRouteRenderersByPath,
"Expected case detail route renderers fourth"
newAppealRouteRenderersByPath,
"Expected new-appeal route renderers fourth"
);
assert.strictEqual(
result[4],
caseDetailRouteRenderersByPath,
"Expected case detail route renderers fifth"
);
assert.strictEqual(
result[5],
detailAndAccountRouteRenderersByPath,
"Expected detail and account route renderers fifth"
"Expected detail and account route renderers sixth"
);
});
@@ -116,6 +125,7 @@ test("resolveMappedRouteRenderer returns renderer from first matching grouped ma
"/known": secondRenderer
},
simpleMyPortalRouteRenderersByPath: {},
newAppealRouteRenderersByPath: {},
caseDetailRouteRenderersByPath: {},
detailAndAccountRouteRenderersByPath: {}
});
@@ -138,6 +148,9 @@ test("resolveMappedRouteRenderer returns renderer from later grouped map when ea
const maps = buildBreadcrumbRendererMaps({
simpleRouteRenderersByPath: {},
simpleLinkTextPairRenderersByPath: {},
newAppealRouteRenderersByPath: {
"/newappeal/selectappeal": () => "newappeal"
},
simpleMyPortalRouteRenderersByPath: {},
caseDetailRouteRenderersByPath: {},
detailAndAccountRouteRenderersByPath: {
@@ -164,6 +177,7 @@ test("resolveMappedRouteRenderer returns null for unmapped path", () => {
},
simpleLinkTextPairRenderersByPath: {},
simpleMyPortalRouteRenderersByPath: {},
newAppealRouteRenderersByPath: {},
caseDetailRouteRenderersByPath: {},
detailAndAccountRouteRenderersByPath: {}
});
@@ -36,6 +36,12 @@ test("breadcrumbs/factory module includes expected mapped route definitions", as
"Expected my-portal route renderer factory export"
);
assert.strictEqual(
source.includes("export const createNewAppealRouteRenderers ="),
true,
"Expected new-appeal route renderer factory export"
);
assert.strictEqual(
source.includes("export const createCaseDetailRouteRenderers ="),
true,
@@ -84,6 +90,12 @@ test("breadcrumbs/factory module includes expected mapped route definitions", as
"Expected /myportal/addresssearchresults to be mapped in createSimpleMyPortalRouteRenderers"
);
assert.strictEqual(
source.includes('"/newappeal/selectappeal": () => ('),
true,
"Expected /newappeal/selectappeal to be mapped in createNewAppealRouteRenderers"
);
assert.strictEqual(
source.includes('"/case/[ticketnumber]": () =>'),
true,
@@ -173,7 +185,7 @@ test("breadcrumbs/component composes mapped routes via imported factories and sh
);
assert.strictEqual(
/const\s+\{[\s\S]*simpleRouteRenderersByPath[\s\S]*detailAndAccountRouteRenderersByPath[\s\S]*\}\s*=\s*createMappedRouteRendererGroups\s*\(/.test(
/const\s+\{[\s\S]*simpleRouteRenderersByPath[\s\S]*newAppealRouteRenderersByPath[\s\S]*detailAndAccountRouteRenderersByPath[\s\S]*\}\s*=\s*createMappedRouteRendererGroups\s*\(/.test(
source
),
true,
@@ -254,6 +266,12 @@ test("breadcrumbs/component composes mapped routes via imported factories and sh
"Expected /case/id/[incident] explicit branch to be removed after mapping"
);
assert.strictEqual(
source.includes('isPath("/newappeal/selectappeal")'),
false,
"Expected /newappeal/selectappeal explicit branch to be removed after mapping"
);
assert.strictEqual(
source.includes('isPath("/myportal/case/[ticketnumber]")'),
false,
@@ -330,6 +348,9 @@ test("breadcrumbs/map builder preserves route map ordering", async () => {
const simpleMyPortalOrderIndex = mapBuilderSlice.indexOf(
"simpleMyPortalRouteRenderersByPath"
);
const newAppealOrderIndex = mapBuilderSlice.indexOf(
"newAppealRouteRenderersByPath"
);
const caseDetailOrderIndex = mapBuilderSlice.indexOf(
"caseDetailRouteRenderersByPath"
);
@@ -341,10 +362,11 @@ test("breadcrumbs/map builder preserves route map ordering", async () => {
simpleRouteOrderIndex >= 0 &&
simpleLinkTextPairOrderIndex > simpleRouteOrderIndex &&
simpleMyPortalOrderIndex > simpleLinkTextPairOrderIndex &&
caseDetailOrderIndex > simpleMyPortalOrderIndex &&
newAppealOrderIndex > simpleMyPortalOrderIndex &&
caseDetailOrderIndex > newAppealOrderIndex &&
detailAndAccountOrderIndex > caseDetailOrderIndex,
true,
"Expected map builder call to preserve explicit route-map ordering (simple -> link-text -> myportal -> case detail -> detail/account)"
"Expected map builder call to preserve explicit route-map ordering (simple -> link-text -> myportal -> new-appeal -> case detail -> detail/account)"
);
});