Skip to content

fix(e2e): assert the deep link as a path, not a hash - #1344

Merged
rubenvdlinde merged 1 commit into
developmentfrom
fix/opencatalogi-deeplink-assertion
Sep 1, 2026
Merged

fix(e2e): assert the deep link as a path, not a hash#1344
rubenvdlinde merged 1 commit into
developmentfrom
fix/opencatalogi-deeplink-assertion

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Collaborator

Follow-up to #1341, which left one E2E test red on development (111 passed, 1 failed).

SPA-001 navigates correctly — gotoHash() was already de-hashed — but its closing assertion still required the URL to contain #/search, which history routing no longer produces.

Matched as a suffix rather than an exact URL: Nextcloud serves the app as both /apps/... and /index.php/apps/..., and the router emits whichever base the page was loaded under, so pinning either would fail on the other for a reason that is not a defect.

Renamed the file-local gotoHash()gotoRoute(). It stopped using a hash when the app moved to history routing, and a helper whose name says "hash" is the next reader's wrong turn.

Extended the docblock to say why the assertion matters: the Dashboard is exactly what renders when the router cannot resolve a path and the catch-all redirects to / — so "Search, not Dashboard" is the real guard against a base-mismatch regression.

Verified: SPA-001 passes against the dev container; prettier --check on the full glob is clean.

Follow-up to #1341, which left one E2E test red on development
(111 passed, 1 failed). SPA-001 navigates correctly -- gotoHash() was
already de-hashed -- but its closing assertion still required the URL to
contain '#/search', which history routing no longer produces.

Matched as a SUFFIX rather than an exact URL: Nextcloud serves the app as
both /apps/... and /index.php/apps/..., and the router emits whichever
base the page was loaded under, so pinning either would fail on the other
for a reason that is not a defect.

Renamed the file-local gotoHash() to gotoRoute(). It stopped using a hash
when the app moved to history routing, and a helper whose name says
'hash' is the next reader's wrong turn.

Extended the docblock to say WHY the assertion matters: the Dashboard is
exactly what renders when the router cannot resolve a path and the
catch-all redirects to '/', so 'Search, not Dashboard' is the real guard
against a base-mismatch regression.

Verified: SPA-001 passes against the dev container. prettier --check on
the full glob is clean.
@rubenvdlinde
rubenvdlinde merged commit b77e6b2 into development Sep 1, 2026
1 check passed
@rubenvdlinde
rubenvdlinde deleted the fix/opencatalogi-deeplink-assertion branch September 1, 2026 09:37
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

Quality Report — ConductionNL/opencatalogi @ 5de78f5

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
build
check-l10n
check-manifest
format
check-schema-l10n
check-l10n-js
composer ✅ 129/129
npm ✅ 881/881
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 09:43 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