PlatformAdoptionComponent builds deep-links as a single string containing a query (/admin/activity-coverage?userId=…) and binds that string to [routerLink].
Angular treats the whole value as a path, so ? / = are percent-encoded (%3FuserId%3D…). Staff clicking Action-level coverage → never land on ?userId= as a real query param.
## Summary
`PlatformAdoptionComponent` builds deep-links as a single string containing a query (`/admin/activity-coverage?userId=…`) and binds that string to `[routerLink]`.
Angular treats the whole value as a **path**, so `?` / `=` are percent-encoded (`%3FuserId%3D…`). Staff clicking **Action-level coverage →** never land on `?userId=` as a real query param.
## Expected
Use path + queryParams separately, e.g.:
```html
<a [routerLink]="['/admin/activity-coverage']" [queryParams]="{ userId: user.keycloakUserId }">
```
or a plain `href` if that is intentional.
## Found by
Wave 6 coverage agent a1 — `platform-adoption.render.spec.ts` (documents current `%3F` encoding).
## Location
- `projects/spikersoft/src/app/_components/admin/platform-adoption/platform-adoption.component.ts` (`coverageLink`)
- `…/platform-adoption.component.html` (`[routerLink]="coverageLink(…)")`
Already on master (not part of PR #819). Platform Adoption coverage links already use path + queryParams, so ?userId= is no longer encoded into the routerLink path. Closing.
Already on `master` (not part of PR #819). Platform Adoption coverage links already use path + queryParams, so ?userId= is no longer encoded into the routerLink path. Closing.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
PlatformAdoptionComponentbuilds deep-links as a single string containing a query (/admin/activity-coverage?userId=…) and binds that string to[routerLink].Angular treats the whole value as a path, so
?/=are percent-encoded (%3FuserId%3D…). Staff clicking Action-level coverage → never land on?userId=as a real query param.Expected
Use path + queryParams separately, e.g.:
or a plain
hrefif that is intentional.Found by
Wave 6 coverage agent a1 —
platform-adoption.render.spec.ts(documents current%3Fencoding).Location
projects/spikersoft/src/app/_components/admin/platform-adoption/platform-adoption.component.ts(coverageLink)…/platform-adoption.component.html([routerLink]="coverageLink(…)")Already on
master(not part of PR #819). Platform Adoption coverage links already use path + queryParams, so ?userId= is no longer encoded into the routerLink path. Closing.