Repository navigation
test(e2e): Playwright suite for the full account lifecycle - #162
Merged
Merged
Conversation
skjnldsv
force-pushed
the
feature/e2e-playwright
branch
2 times, most recently
from
July 1, 2026 19:54
12a8cf9 to
b8f4756
Compare
skjnldsv
force-pushed
the
feature/e2e-playwright
branch
from
July 2, 2026 08:47
b8f4756 to
1aad84a
Compare
The admin settings script relied on jQuery ($), underscore (_.debounce) and OC.linkToOCS, none of which are part of the default server bundle on Nextcloud 32+, so the whole script threw and the reset-token button and group selectors were dead. Rewrite it dependency-free using vanilla DOM + fetch (OCS calls with the request token), preserving the debounced reset-token and group-save behaviour. Assisted-by: ClaudeCode:claude-opus-4-8 Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
Browser-driven end-to-end tests covering the whole preferred_providers flow, using the @nextcloud/e2e-test-server Docker harness (server on :8089) plus a Mailpit sidecar to capture the verification/reactivation emails. Scenarios: signup → set password → auto-login → verify email → group move; the V3 and OCS-APIREQUEST client branches; self-service reactivation + re-verify and the admin-disabled-not-reactivatable guard; a user login; and admin settings access + provider-token reset. - start-nextcloud-server.mjs boots the server, enables the app, provisions the provider token + groups via occ, and wires SMTP to Mailpit on a shared user-defined network. - support/: occ helpers, a Mailpit client and an OCS request-account helper. - CI: separate, non-blocking playwright.yml matrix over the supported server range (derived from info.xml via nextcloud-version-matrix) plus master. Assisted-by: ClaudeCode:claude-opus-4-8 Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
skjnldsv
force-pushed
the
feature/e2e-playwright
branch
from
July 2, 2026 08:53
1aad84a to
98b546b
Compare
The property-promotion cleanup (#161) migrated ExpireUserTrait and ExpireUnverifiedAccounts off the removed $appName property to Application::APP_ID, but missed the pp_disabled line added by the reactivation feature. Left as $this->appName it referenced an undefined property, so the expire background job fatally errored at runtime (and psalm/phpunit flagged it). Assisted-by: ClaudeCode:claude-opus-4-8 Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scenarios covered
flow=V3renders thenc://flow-login page for desktop/mobile clients.nc://login/…app-password URL.pp_disabled) reactivates itself through the public/reactivateform, receives a fresh verification mail, and re-verifies.pp_disabledflag) is NOT reactivatable through the self-service form (identical response, stays disabled — no enumeration).Also included
fix(settings):admin-settings.jsrewritten dependency-free (jQuery / underscore /OC.linkToOCSare gone from the modern server bundle, so the reset-token button and group selectors were dead on NC 32+). The admin scenario now exercises the reset round-trip end-to-end.This PR was developed with AI assistance (Claude Code,
claude-opus-4-8); the commit carries anAssisted-by:trailer. I have reviewed and run the suite and take authorship of it.