Harden changed-surfaces registry-admin selector

This commit is contained in:
master
2026-03-11 19:17:12 +02:00
parent 8eec0a9dee
commit 4a84f901ab
2 changed files with 66 additions and 1 deletions

View File

@@ -0,0 +1,65 @@
# Sprint 20260311_009 - FE Changed Surfaces Registry Admin Selector Hardening
## Topic & Scope
- Revalidate the live changed-surfaces sweep after the registry-admin audit route fix.
- Root-cause the remaining `registry-admin` failure and repair the QA harness if it is selecting the wrong UI control.
- Keep the change scoped to the web QA harness and this sprint log.
- Working directory: `src/Web/StellaOps.Web`.
- Expected evidence: root-cause notes, narrowed selector in the changed-surfaces script, and a passing live changed-surfaces sweep.
## Dependencies & Concurrency
- Depends on the deployed web bundle already containing the registry-admin audit route identity fix.
- Safe parallelism: limited to `src/Web/StellaOps.Web` plus this sprint file.
## Documentation Prerequisites
- `AGENTS.md`
- `docs/qa/feature-checks/FLOW.md`
## Delivery Tracker
### FE-CHANGED-SURFACES-001 - Prove whether the remaining registry-admin failure is real
Status: DONE
Dependency: none
Owners: QA, 3rd line support
Task description:
- Inspect the changed-surfaces report after the product fix and determine whether the remaining `registry-admin` failure is still in product code or in the sweep selector/action logic.
Completion criteria:
- [x] The exact failing action record is captured from the changed-surfaces report.
- [x] Root cause is identified with concrete evidence.
### FE-CHANGED-SURFACES-002 - Narrow the registry-admin action selector
Status: DONE
Dependency: FE-CHANGED-SURFACES-001
Owners: Product Manager, Architect, Developer
Task description:
- Update the changed-surfaces harness so the registry-admin action targets the tablist audit control instead of any unrelated page button that happens to contain the word `Audit`.
Completion criteria:
- [x] The selector is scoped to the registry-admin tab strip.
- [x] The harness no longer reports a false failure on the healthy audit route.
### FE-CHANGED-SURFACES-003 - Reverify the full changed-surfaces matrix
Status: DONE
Dependency: FE-CHANGED-SURFACES-002
Owners: QA
Task description:
- Rerun the full live changed-surfaces matrix and confirm the registry-admin slice and adjacent surfaces remain clean after the selector hardening.
Completion criteria:
- [x] The changed-surfaces run completes successfully on `https://stella-ops.local`.
- [x] No surfaces report heading/runtime/action failures.
## Execution Log
| Date (UTC) | Update | Owner |
| --- | --- | --- |
| 2026-03-11 | Sprint created after the changed-surfaces matrix still reported `registry-admin` broken even though the focused audit proof passed. | QA |
| 2026-03-11 | The remaining failure was reclassified as a harness defect: the matrix selector `a[href*="/registry-admin/audit"], button:has-text("Audit")` matched the sidebar `Security & Audit` accordion before the actual audit tab, leaving the page on the starting route. | QA / 3rd line support |
| 2026-03-11 | Scoped the registry-admin selector to the tablist audit link, reran the full live changed-surfaces matrix, and confirmed `0` action failures, `0` response errors, `0` console errors, and `0` problem-text hits across all configured surfaces. | Product / Architect / Developer / QA |
## Decisions & Risks
- Decision: keep the product code unchanged. The focused live proof already showed the audit route itself was healthy after the preceding iteration.
- Risk: broad text-based selectors can drift into unrelated shell controls as more navigation groups are revived. Surface scripts must scope selectors to the active feature region when the shell contains overlapping labels.
## Next Checkpoints
- Continue with the next broader live action family after committing the changed-surfaces harness repair.

View File

@@ -138,7 +138,7 @@ const surfaceConfigs = [
actions: [
{
key: 'audit-tab',
selector: 'a[href*="/registry-admin/audit"], button:has-text("Audit")',
selector: 'nav[role="tablist"] a[href*="/registry-admin/audit"], nav[role="tablist"] a:has-text("Audit Log")',
expectedUrlPattern: '/registry-admin/audit',
expectedTextPattern: /audit/i,
requiredUrlFragments: ['tenant=', 'regions='],