Skip to content

Remaining quality debt after the #180 sweep: E2E red, gate-19 (491), gate-25 (10), gate-26 (4) #184

Description

@rubenvdlinde

Tracking the three quality signals on hermiq that PR #180 deliberately did not touch, so the numbers are on record and nobody re-measures them from scratch.

Honest full-scope baseline: development @ cd23f547, workflow_dispatch --full, run 31490144919.

⚠️ The push-scope figure of "16 gates / ~1,184 findings" is not comparable to a full-scope one. gate-16 (spec-coverage, 473) and gate-52 (custom-widget-ratchet) are diff-scoped and drop out of a whole-repo run by design; gate-29/33/47/48/61 report NOT APPLICABLE. The full-scope figure is 14 gates / 743 findings.

1. E2E (Playwright) — red, job 93775011235

Scoped to tests/e2e/spec-coverage by .github/workflows/code-quality.yml, and that scoping is stated in the workflow rather than assumed. Not investigated in #180. Before concluding it is a test bug, check the known shape first: an admin root that mounts every section on one storesReady flag produces a DOM large enough that Playwright's role queries never terminate while the page itself loads in ~3.5s (procest#784). Also note waitForLoadState('networkidle') hides the race it appears to fix, and mode: 'serial' masks failures — a suite reporting "N did not run" is not telling you it is healthy.

2. gate-19 e2e-coverage — 491 scenarios missing @e2e

This number is directional, not exact. Four known gate defects:

  • .github#343 — a file-level @e2e tag is credited without checking the test body, so a file can be credited for scenarios nothing in it exercises;
  • .github#345 — an @e2e exclude is read as positive coverage, so excluding and covering are indistinguishable to the gate;
  • a dangling @e2e anchor fails silently;
  • .github#209 (fixed) — gate-19 used to return its finding count as an exit status, so any figure quoted in an older issue is wrong.

Real work, but it is the long tail: 491 scenarios is a programme, not a sweep.

3. gate-25 (10) and gate-26 (4)

  • gate-25 contract-coverage — 10 new public endpoints with no contract test.
  • gate-26 visual-coverage — 4 new page components with no visual baseline. ⚠️ This gate can be satisfied by a bare PascalCase token in a comment — it looks for the component name anywhere in the corpus. Create real baselines and verify each one actually captures the component; making the token appear turns it green with no baseline existing.

Where hermiq stands after #180

PHPUnit (all cells), phpstan, psalm green; gate-7/13/24/30/40/51/54 closed at source; gate-46 201 → 25 (#183); gate-17 (#182) and gate-57 (#181) filed as false-positive / product decisions rather than fake-fixed. Remaining: this issue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions