const assert = require("assert"); const { buildBreadcrumbRendererMaps, getMappedRendererByPath, resolveMappedRouteRenderer } = require("../../lib/routing/breadcrumbRouteMaps"); const tests = []; const test = (name, fn) => tests.push({ name, fn }); test("breadcrumbRouteMaps/buildBreadcrumbRendererMaps preserves explicit map order", async () => { const mapA = { "/a": () => "A" }; const mapB = { "/b": () => "B" }; const mapC = { "/c": () => "C" }; const result = buildBreadcrumbRendererMaps({ simpleRouteRenderersByPath: mapA, simpleLinkTextPairRenderersByPath: mapB, simpleMyPortalRouteRenderersByPath: mapC }); assert.strictEqual(result[0], mapA); assert.strictEqual(result[1], mapB); assert.strictEqual(result[2], mapC); }); test("breadcrumbRouteMaps/getMappedRendererByPath returns mapped renderer or null", async () => { const renderer = () => "ok"; const map = { "/x": renderer }; assert.strictEqual(getMappedRendererByPath("/x", map), renderer); assert.strictEqual(getMappedRendererByPath("/missing", map), null); }); test("breadcrumbRouteMaps/resolveMappedRouteRenderer honors map precedence", async () => { const firstRenderer = () => "first"; const secondRenderer = () => "second"; const result = resolveMappedRouteRenderer("/same", [ { "/same": firstRenderer }, { "/same": secondRenderer } ]); assert.strictEqual(result, firstRenderer); assert.strictEqual(resolveMappedRouteRenderer("/none", []), null); }); const run = async () => { let passed = 0; for (const currentTest of tests) { await currentTest.fn(); passed += 1; } console.log( `Phase 22 breadcrumb-route-maps-helper tests passed (${passed}/${tests.length}).` ); }; module.exports = run; if (require.main === module) { run().catch((error) => { console.error(error); process.exit(1); }); }