Skip to content

62 Playwright tests in 14 files have never run in CI — playwright-test-path scopes the job to tests/e2e/spec-coverage #176

Description

@rubenvdlinde

What

.github/workflows/code-quality.yml:111 sets

playwright-test-path: "tests/e2e/spec-coverage"

so the E2E job only ever collects the 7 files under that directory. The job's own log states the scope it chose:

Found 7 Playwright test file(s) in tests/e2e/spec-coverage.

Everything at the tests/e2e/ root is outside it. That is 14 spec files containing 62 tests:

agent-detail-and-chrome  dashboard-and-agents  docs-screenshots  flow-builder-dialect
skill-bundle  skill-evals  skill-learnings  skill-maturity  skill-multifile-install
skill-provenance  skill-self-improvement  sync-conversion-probe  tutorial-captures
wave2-surfaces

Why this matters more than a missing-coverage ticket

They are not failing. They are unexecuted — and from outside the job, an unexecuted test is indistinguishable from a passing one. The E2E check reports green, the PR page shows a tick, and 62 assertions about the flow builder, the dashboard, the agent detail page and the whole skill surface contribute nothing to it.

This was found while verifying hermiq#175, which added two tests to flow-builder-dialect.spec.ts and got a green E2E job that never opened the file. The green was about to be read as evidence for a change it had not touched.

Not a one-line fix

Repointing the path at tests/e2e would collect all 62 immediately, and several would fail for reasons unrelated to the code under test:

  • flow-builder-dialect.spec.ts addresses a flow by a UUID that exists on a local dev instance; CI seeds the Hydra Triage flow instead (spec-coverage/flow-seed.spec.ts)
  • docs-screenshots.spec.ts and tutorial-captures.spec.ts are capture tools rather than assertions, and probably should not gate a PR at all

So the work is per-file triage into three buckets:

  1. make it runnable in CI — replace instance-specific fixtures with what the seed provides, then move it under spec-coverage/
  2. explicitly local-only — keep it at the root, and document at the top of the file that CI never runs it, so nobody reads a green E2E as covering it
  3. not a test — move captures out of the *.spec.ts collection entirely

Suggested acceptance

  • Every file under tests/e2e/ is in exactly one of the three buckets above, and each local-only file says so in its header.
  • The E2E job's collected-file count is asserted, so a path that silently collects fewer files fails instead of passing quietly.

That last point is the part that keeps this from recurring: the current setup has no way to notice that it stopped looking.

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

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions