Skip to content

fix(e2e): reach Portfolio by its card, which is its only entry point - #580

Merged
rubenvdlinde merged 1 commit into
developmentfrom
fix/portfolio-is-a-report-card-now
Sep 5, 2026
Merged

fix(e2e): reach Portfolio by its card, which is its only entry point#580
rubenvdlinde merged 1 commit into
developmentfrom
fix/portfolio-is-a-report-card-now

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

This is the first failure this suite has ever reported. It never ran before: the seed asked for the timeEntry slug that #575 renamed to plannedTimeEntry, exited 1, and took Playwright with it. #578 fixed the seed, and the push run came back 1 failed, 34 passed — the first real tally this app has.

The one failure: Portfolio renders capacity clicks a nav entry titled Portfolio. There is none. The report moved onto the Reports page as a card labelled Capacity — ADR-112, a report is a card or a menu entry, never both — so the click waited out its full 60 s on a locator that can never resolve, which reads as a broken page.

openReportCard() sits beside navigateTo() and opens a report through its card. It addresses the card by its own data-testid="cn-report-card" and title span, not by the link's accessible name: CnReportsPage wraps title, description and category in one anchor, so the accessible name is all three concatenated and an exact match on the label finds nothing. That mistake cost stackiq a 60 s timeout earlier today. A liveness control goes first, so a card that does not match reads as a missing card rather than a page that never mounted.

Verified

eslint and playwright test --list are green (9 tests collect). The chain was checked against the real manifest: the Capacity card names page Portfolio, which routes to /portfolio — the URL the test still asserts.

🤖 Generated with Claude Code

`Portfolio renders capacity` clicked a nav entry titled "Portfolio".
There is none: the report moved onto the Reports page as a card labelled
"Capacity" — ADR-112, a report is a card OR an entry, never both — so
the click waited out its 60s timeout on a locator that can never
resolve, which reads as a broken page.

This is the first failure this suite has ever reported. It never ran
before: the seed asked for the `timeEntry` slug that #575 renamed, exited
1, and took Playwright with it. 1 failed, 34 passed is the first real
tally.

`openReportCard()` sits beside `navigateTo()` and addresses the card by
its own testid and title span, NOT by the link's accessible name:
CnReportsPage wraps title, description and category in one anchor, so an
exact match on the label finds nothing. A liveness control goes first, so
a card that does not match reads as a missing card rather than a page
that never mounted.

Verified: the "Capacity" card names page Portfolio, which routes to
/portfolio — the URL the test still asserts.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@rubenvdlinde

Copy link
Copy Markdown
Contributor Author

Merging with check:schema-l10n red. Same pre-existing failure measured on #578: 137 uncovered against a baseline of 135, identical on a clean origin/development archive, from the two Dutch schema strings #575 introduced. This PR edits one e2e spec and adds no schema string.

@rubenvdlinde
rubenvdlinde merged commit 1654a4e into development Sep 5, 2026
40 of 41 checks passed
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/planninq @ b791e47

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-manifest
check-l10n-js
check-schema-l10n
composer ✅ 104/104
npm ✅ 536/536
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-05 15:01 UTC

Download the full PDF report from the workflow artifacts.

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