Skip to content

fix(e2e): assert the path, not the URL fragment - #662

Closed
rubenvdlinde wants to merge 1 commit into
developmentfrom
fix/e2e-assert-the-path-not-the-hash
Closed

fix(e2e): assert the path, not the URL fragment#662
rubenvdlinde wants to merge 1 commit into
developmentfrom
fix/e2e-assert-the-path-not-the-hash

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

larpinq's E2E has been red on development since feat(router): give larpinq the SPA catch-all, and move it to clean path URLs (#651). This is the second of the two leftovers from that migration; #660 was the first.

openRoute() in settings-roadmap.spec.ts navigates with a real page.goto, and that part kept working. Its URL assertion did not:

Expected pattern: /#\/game-settings/
Received string:  "http://localhost:8080/apps/larpinq/game-settings"

It waited 15 seconds for a fragment the history router no longer emits. All six specs in the file failed, on pages that had rendered correctly the whole time, which is why this read as a broken settings page rather than a stale assertion.

The assertion now matches the path, with the route escaped for regex use.

Verified against a live instance: 6 passed.

Together with #660 this should return larpinq's E2E to green. I will confirm on the push run after merge, since the E2E job does not run on PRs into development.

#651 moved larpinq to clean path URLs. openRoute()'s goto was already correct
and kept working; its URL assertion was not. It waited 15s for a
'#/game-settings' the history router stopped emitting, so all six
settings-roadmap specs failed on pages that had rendered perfectly.

That is why this read as a broken settings page rather than a stale assertion:
the failure names the URL check, but the screen behind it was fine.

Verified against a live instance: 6 passed.
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/larpinq @ 22272fd

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-specs
test-l10n
format
check-l10n-js
check-schema-l10n
composer ✅ 105/105
npm ✅ 525/525
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 17:10 UTC

Download the full PDF report from the workflow artifacts.

@rubenvdlinde

Copy link
Copy Markdown
Contributor Author

Merging with the same two pre-existing gates red that I documented on #657 and #660: gate-14 route-reachability (metrics#index and health#index pointing at controllers larpinq does not have) and gate-25 contract-coverage. Both were failing on development before this branch, and this branch changes one e2e file.

That gap now has a decision behind it rather than another deferral: decidiq's MetricsController and HealthController get ported to the four apps missing them (larpinq, dossiq, keepiq, shillinq), so /metrics and /health stop being dispatch-time 500s. That is separate feature work and will land on its own PRs.

@rubenvdlinde

Copy link
Copy Markdown
Contributor Author

Superseded by #663, which landed the same fix on development while this was open: same diagnosis (the assertion outlived the move to history mode), same correction (assert the path, drop the #).

The one difference is the escaping. #663 escapes forward slashes; this escaped the full regex metacharacter set and allowed an optional trailing slash. Neither matters for the routes in this file, which are plain /game-settings and /features-roadmap, so there is nothing here worth reopening for. Closing rather than rebasing.

Both were verified the same way: I ran the file against a live instance and got 6 passed.

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