Activity coverage: domain filter miss shows "all covered" celebration under Uncovered only #1012

Closed
opened 2026-08-12 07:24:17 +00:00 by spikerj · 1 comment
Owner

Summary

On /admin/activity-coverage, when Uncovered only is on (the default) and the domain filter matches zero domains, the empty state shows:

Every registered action has been emitted at least once. Nice.

instead of:

No domains match the current filter.

That falsely tells staff the tenant is fully instrumented when they have simply typed a non-matching filter.

Where

projects/spikersoft/src/app/_components/admin/activity-coverage/activity-coverage.component.html — empty arm under visibleDomains().length === 0:

<p>{{ uncoveredOnly() ? t("admin.activityCoverage.emptyAllCovered") : t("admin.activityCoverage.emptyNoMatch") }}</p>

The branch keys only on uncoveredOnly(), not on whether a domain filter is active / whether the unfiltered uncovered set is empty.

Repro

  1. Open Activity coverage as staff with at least one uncovered action.
  2. Leave Uncovered only on.
  3. Type a domain filter that matches nothing (e.g. zzzz-no-such-domain).
  4. Observe the celebration empty copy.

Expected

Filter miss → emptyNoMatch. Celebration copy only when there is no active filter (or the filter is blank) and every registered action is covered under the current scope.

Found by

Wave 6 coverage tick 7 / a1 — characterization test in activity-coverage.render.spec.ts.

## Summary On `/admin/activity-coverage`, when **Uncovered only** is on (the default) and the domain filter matches **zero** domains, the empty state shows: > Every registered action has been emitted at least once. Nice. instead of: > No domains match the current filter. That falsely tells staff the tenant is fully instrumented when they have simply typed a non-matching filter. ## Where `projects/spikersoft/src/app/_components/admin/activity-coverage/activity-coverage.component.html` — empty arm under `visibleDomains().length === 0`: ```html <p>{{ uncoveredOnly() ? t("admin.activityCoverage.emptyAllCovered") : t("admin.activityCoverage.emptyNoMatch") }}</p> ``` The branch keys only on `uncoveredOnly()`, not on whether a domain filter is active / whether the unfiltered uncovered set is empty. ## Repro 1. Open Activity coverage as staff with at least one uncovered action. 2. Leave **Uncovered only** on. 3. Type a domain filter that matches nothing (e.g. `zzzz-no-such-domain`). 4. Observe the celebration empty copy. ## Expected Filter miss → `emptyNoMatch`. Celebration copy only when there is no active filter (or the filter is blank) **and** every registered action is covered under the current scope. ## Found by Wave 6 coverage tick 7 / a1 — characterization test in `activity-coverage.render.spec.ts`.
Author
Owner

Fixed in spikersoft-angular PR #823 (a0f0ccd9). Closing.

Fixed in `spikersoft-angular` [PR #823](https://git.spikersoft.com/spikerj/spikersoft-angular/pulls/823) (`a0f0ccd9`). Closing.
Sign in to join this conversation.