Tools shell loadJsonToCSharp/loadBase64/loadJwt navigate to primary /tools/json instead of the named tools outlet #1066

Closed
opened 2026-08-13 06:06:28 +00:00 by spikerj · 1 comment
Owner

Found during Wave 7 coverage on ToolsComponent.

routes.ts registers every tool as a named tools outlet (path: "json", outlet: "tools", etc.). The shell constructor correctly sends the user to /tools/(tools:json) when the URL is the bare /tools shell, and the template routerLinks use { outlets: { tools: [tool.route] } }.

The leftover public helpers do not:

loadJsonToCSharp(): void { this.router.navigate(["/tools/json"]); }
loadBase64(): void { this.router.navigate(["/tools/base64"]); }
loadJwt(): void { this.router.navigate(["/tools/jwt"]); }

/tools/json is not a child of the tools parent (the json route lives on the named outlet), so these navigations miss the tool. They are currently unreferenced from the template, but anything that calls them (or a future wiring) would land on an empty shell.

Expected: the same named-outlet form the constructor and tree-of-knowledge already use:

this.router.navigate(["/tools", { outlets: { tools: ["json"] } }]);

Spec characterization: projects/spikersoft/src/app/_components/tools-shell/tools.component.spec.ts.

Found during Wave 7 coverage on `ToolsComponent`. `routes.ts` registers every tool as a **named** `tools` outlet (`path: "json", outlet: "tools"`, etc.). The shell constructor correctly sends the user to `/tools/(tools:json)` when the URL is the bare `/tools` shell, and the template `routerLink`s use `{ outlets: { tools: [tool.route] } }`. The leftover public helpers do not: ```ts loadJsonToCSharp(): void { this.router.navigate(["/tools/json"]); } loadBase64(): void { this.router.navigate(["/tools/base64"]); } loadJwt(): void { this.router.navigate(["/tools/jwt"]); } ``` `/tools/json` is not a child of the `tools` parent (the json route lives on the named outlet), so these navigations miss the tool. They are currently unreferenced from the template, but anything that calls them (or a future wiring) would land on an empty shell. Expected: the same named-outlet form the constructor and `tree-of-knowledge` already use: ```ts this.router.navigate(["/tools", { outlets: { tools: ["json"] } }]); ``` Spec characterization: `projects/spikersoft/src/app/_components/tools-shell/tools.component.spec.ts`.
Author
Owner

Resolved in spikersoft-angular PR #819 (merged to master). Tools shell helpers navigate the named tools outlet instead of primary /tools/json. Closing.

Resolved in spikersoft-angular [PR #819](https://git.spikersoft.com/spikerj/spikersoft-angular/pulls/819) (merged to `master`). Tools shell helpers navigate the named tools outlet instead of primary /tools/json. Closing.
Sign in to join this conversation.