Skip to content

fix(e2e): the lint pass renamed Playwright fixtures, which killed the suite - #1088

Closed
rubenvdlinde wants to merge 2 commits into
developmentfrom
fix/playwright-fixture-params
Closed

fix(e2e): the lint pass renamed Playwright fixtures, which killed the suite#1088
rubenvdlinde wants to merge 2 commits into
developmentfrom
fix/playwright-fixture-params

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Playwright resolves a fixture by name from the destructured parameter, so renaming an unused one to _page asks for a fixture that does not exist. The e2e leg dies before a single test runs, and the report contains no test entries at all:

##[error]Test has unknown parameter "_page".
##[error]the report parsed but contained no test entries. A report with no
         tests is not a clean run.

Introduced by the pass that let the linter see tests/. The linter was right that the parameters were unused. Underscore-prefixing is the correct fix for an ordinary unused argument and the wrong fix for a Playwright fixture, because there the name is the lookup key.

This is the same defect already fixed in buildiq (#642); a fleet sweep found it in four more apps.

The fix

Each parameter is genuinely unused, so it is removed rather than renamed back. The one exception is an afterEach whose own comment already documented the right shape.

Verified

npx playwright test --list reports tests again, where it previously reported none.

🤖 Generated with Claude Code

… suite

Playwright resolves a fixture BY NAME from the destructured parameter, so
renaming an unused one to `_page` asks for a fixture that does not exist. The
e2e leg dies before a single test runs and the report contains no test
entries at all.

Introduced by the pass that let the linter see tests/. The linter was right
that the parameters were unused; underscore-prefixing is the fix for an
ordinary unused argument and the wrong fix for a Playwright fixture, because
the name is the lookup key.

Same defect as buildiq#642, found by a fleet sweep.
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/decidiq @ 6c9b85f

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-manifest
check-nav-ceiling
test-l10n
format
check-l10n-js
check-schema-l10n
composer ✅ 104/104
npm ✅ 537/537
app:check-code ⏭️
info.xml
REUSE
PHPUnit
Newman
Playwright ⏭️ deferred — runs on the promotion into beta/main, not on a pull request into development
Hydra gates

Quality workflow — 2026-09-01 11:22 UTC

Download the full PDF report from the workflow artifacts.

… above

eslint's no-empty-pattern fires on `async ({}, testInfo)`, which is exactly
the shape Playwright documents for "no fixtures, but give me testInfo". The
file's own comment already said so. Naming it makes Playwright look for a
fixture called _fixtures and refuse the whole file, so the disable carries the
reason rather than the rule name alone.
@rubenvdlinde

Copy link
Copy Markdown
Contributor Author

Superseded: development already carries the canonical fix, { page: _page }, which keeps the fixture name as the lookup key while satisfying the linter, plus the same eslint-disable on the empty pattern. After merging development this branch has no diff at all.

@rubenvdlinde
rubenvdlinde deleted the fix/playwright-fixture-params branch September 2, 2026 02:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant