Skip to content

Feature/find email lookup and e2e - #71

Open
finjaadam wants to merge 9 commits into
sandstorm:mainfrom
finjaadam:feature/find-email-lookup-and-e2e
Open

Feature/find email lookup and e2e#71
finjaadam wants to merge 9 commits into
sandstorm:mainfrom
finjaadam:feature/find-email-lookup-and-e2e

Conversation

@finjaadam

Copy link
Copy Markdown
Collaborator

No description provided.

finjaadam and others added 9 commits July 14, 2026 14:23
Ports the extension point from the 7.0 branch so consuming applications can
customize how the reset-password recipient address is resolved instead of
assuming account identifier == e-mail address. Default behavior is unchanged.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…set-password, profile)

Scaffolded via sandstorm/neos-init-e2e-tests-plugin (composer e2e:init) and then adapted
from the generic Neos-backend-login sample to this package's own controllers/routes:

- Mailpit catches outgoing mail so tests can read activation/reset-password links
  (Neos.SymfonyMailer.mailer.dsn routed to it in the E2E-SUT Flow context).
- ProfileController has no standalone route in the package (only reachable via a Neos
  Fusion plugin), so the E2E-SUT context adds its own /profile routes instead of setting
  up a full Neos site just to host the plugin.
- Fixtures are created through the package's own sandstormuser:* CLI rather than Flow's
  generic user:create, since registration/activation is this package's own domain concept.
- Only the Neos 9 SUT variant is kept on this branch; the 7.0 branch gets an equivalent
  Neos 8 suite.

Verified without Docker (blocked in this sandbox): PHP lint, TypeScript type-check, Gherkin
step resolution via bddgen, `playwright test --list`, and YAML syntax of all new/changed
config. The actual docker compose build + playwright run still needs to happen where Docker
is available.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
axllent/mailpit has no floating "v1" tag, only "latest" and versioned tags
like "v1.30.4" - discovered when actually running docker compose up.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
PHP 8.5 breaks composer resolution for sandstorm/templatemailer's dependency
pelago/emogrifier, which only supports up to PHP 8.4 - discovered when actually
booting the container.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- rolesForNewUsers was empty by default, so freshly activated test users lacked
  the Neos.Neos:FrontendUser/Editor role that Sandstorm.UserManagement:Profile
  requires (Policy.yaml), causing /profile to bounce back to /login.
- The registration email field renders as `registrationFlow[email]` at runtime,
  not the auth-token username field the template's `name` attribute suggests -
  Fluid's form.textfield ignores an explicit `name` override once `property` is
  set. Found by inspecting the actual rendered HTML.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Add a second, plainer /profile route (no __show*/__enable* plugin-argument
  defaults) so ProfileController's internal `$this->redirect('index')` calls
  can resolve - Flow's Router::resolve() requires an exact match of a route's
  static defaults, and redirect('index') doesn't supply those keys. Confirmed
  via `./flow routing:resolve`, which reproduces the same "Router resolve():
  Could not resolve a route..." failure without needing a browser.
- Fix LoginPage.logout() to navigate to /login first: the logout form only
  renders there (via the ifAuthenticated viewhelper), so calling it from
  /profile timed out looking for a form that isn't on that page.
- Document the rebuild-after-config-change requirement and add a
  troubleshooting section (routing:list/routing:resolve, log locations,
  manual user creation) to Tests/README.md, based on what it took to track
  these two issues down.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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