Skip to content

feat(auth): finish forgot/reset password screens: Log In on Reset Link Sent, banner fix, tests - #3827

Draft
yodem wants to merge 4 commits into
masterfrom
feature/sc-44747/reset-password-back-to-sign-in
Draft

yodem wants to merge 4 commits into
masterfrom
feature/sc-44747/reset-password-back-to-sign-in

Conversation

@yodem

@yodem yodem commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator

Summary

Finishes the forgot/reset-password screen refresh. The "Reset link sent" state now has a way back to log in, two navigation and state bugs in the reset flow are fixed, and the reset screens get test coverage.

Shortcut Story: SC-44747

Changes

  • AuthPage.jsx: "Reset link sent" state gets a Log In button (existing auth.log_in_link string, no new i18n key).
  • AuthPage.jsx: the no-account banner's "Request new link" now lands on the Forgot Password view. It used to fall back to Log In; the comment above requestNewLink already described the intended behaviour.
  • ResetExpiredView.jsx: handleResend returns after onResendSuccess(), so it no longer sets state on an unmounted component.
  • New Jest suites: ResetView.test.js, ResetExpiredView.test.js, plus additions to AuthPage.test.js.
  • Playwright specs UMN-A09 to A12 in e2e-tests/full-testing-by-feature/User Menu/auth-page.spec.ts (the Reset Link Sent button, the banner link, the reset-confirm and expired views).

Testing

  • Ran relevant tests: npx jest static/js/auth: 11 suites, 129 tests pass
  • Playwright UMN-A09 to A12 have NOT been executed (no local stack). They need a run on a cauldron or in CI before the story closes.
  • Verified locally with python manage.py runserver
  • Tested in both English and Hebrew interface languages
  • Tested mobile responsiveness

Notes

  • Open copy question: is "Log In" acceptable on "Reset link sent", or does Figma want "Back to sign in"? The second needs a new string key, Hebrew copy and a Weblate sync.
  • The valid-link success screen needs a server-minted reset token, so the browser tests cover it only through Jest and the Django tests.

🤖 Generated with Claude Code

https://claude.ai/code/session_01WUGV6KW3Gv4JhQuYWD3LMa

yodem and others added 4 commits October 19, 2026 06:04
The Reset Link Sent card was a dead end. Reuse the reset-success Log In
button there, via one shared constant, and add AuthPage tests for the
forgot, expired, valid-link, success and no-account screens.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WUGV6KW3Gv4JhQuYWD3LMa
Pin the reset-confirm form validation, request bodies, invalid-link
hand-off, field and banner errors, and the expired view's resend and
no-account branches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WUGV6KW3Gv4JhQuYWD3LMa
…(sc-44747)

Add UMN-A09 to A12 to auth-page.spec.ts: the Log In button on Reset Link
Sent, the expired-link page and resend, the no-account banner, and a
Hebrew smoke test. They intercept only the confirm-URL POST and use a uid
no account owns. Not executed: no local Sefaria stack.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WUGV6KW3Gv4JhQuYWD3LMa
…ounted state update (sc-44747)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WUGV6KW3Gv4JhQuYWD3LMa

This branch has not been deployed

No deployments
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