01a010cb - Set account email before the support form - #1409
Conversation
The support form no longer collects email. After verification the customer returns via the stored origin; cancel and merge-OK drop that path so it cannot come back on a later visit.
|
EN: DE: DetailsReplacement for #1397 (in-repo branch, no write). Head Review: one pass, 0 findings on quality and logic. No open issue comments, reviews, or inline comments. Mergeable: CI on this head: Build and test success, Full-stack E2E success, review success, Analyze (actions) success. Handbook image job is skipped while the PR is draft ( Declared deviations: no whole-file 100% coverage of the pre-existing screens; no new Playwright baselines; no new full-stack case for the mail-first redirect. |
|
EN: DE: DetailsReopened the PR to fire |
The mail-gate tests clear all mocks. The tx suite must put useUserContext back so the screen can destructure user after DFXswiss#1409.
The mail-gate tests clear all mocks. The tx suite must put useUserContext back so the screen can destructure user after DFXswiss#1409.
…ge (#1407) * Open assign, refund and support on the public TX status page Buttons on /tx/T… no longer redirect to login. Assign and refund use UID guest endpoints; the support form accepts a tx query param so a ticket can be filed without a session. * Keep the tx query param after the URL is cleaned Snapshot tx at mount so clearing the query string cannot re-enable the login guard or wipe the prefilled transaction. Guest refund renders without a numeric transaction id. * Hide logged-in refund dropdowns on the guest path Guest refunds always use free-text IBAN and address fields so leftover bank-account context after a previous session cannot open the dropdown. * Keep public TX mail links working when a session is already open Assign, refund and support on a T/Q status URL always use the guest capability path so a logged-in session cannot block or widen the action. * Drop unused within import from the refund tests ESLint treats the leftover import as a warning and CI fails at max-warnings 0. * Wire the guest refund mock in the list/txinfo suite T/Q refund now always calls getRefund. The list suite still stubbed that as a bare jest.fn, so the form never left the spinner. * Refresh status checks for the feature-branch pull request The previous head still carried a Full-stack E2E run from the closed develop-targeted fork PR. This branch is not develop, so that workflow does not apply here. * Do not fail full-stack E2E when the API checkout key is missing Fork pull requests do not receive repository secrets. Without the API checkout key the job dies as repository-not-found. Treat a missing key like a documentation-only change: mode=none, job still runs. * Drop unreachable session refund UI from the public TX refund form The refund route only mounts for T/Q UIDs, so the logged-in dropdowns and session refund APIs could never run. Always use the guest form, and expect the full-stack refund test to land on /tx/{uid}. * Drop leftover uid gates on the refund form and cover public assign TransactionRefund only mounts for T/Q, so a second isUid check was dead. The full-stack suite now opens /tx/{uid}/assign and expects the guest assign screen, not the list. * Restore user and session mocks in the tx query-param suite The mail-gate tests clear all mocks. The tx suite must put useUserContext back so the screen can destructure user after #1409. * Use the mail action secret on guest assign and refund URLs The unmatched-deposit mail stays one link: /tx/{uid}/{secret}. Guest assign and refund call the secret APIs; status without a secret does not offer those actions. * Restore JWT refund on the logged-in TX list path * Add handbook screenshots for the mail action-secret TX flow * Drop the unused JWT helper from the guest TX visual spec --------- Co-authored-by: TaprootFreak <142087526+TaprootFreak@users.noreply.github.com> Co-authored-by: TaprootFreakAI <315477232+TaprootFreakAI@users.noreply.github.com>
EN:
A logged-in customer without account email is sent to the official mail screen before the support form. The ticket form no longer collects email. Cancel and merge-OK on the mail screen drop the stored return path so it cannot come back on a later visit. This replacement takes over #1397 onto current develop.
DE:
Ein eingeloggter Kunde ohne Konto-Mail wird vor dem Support-Formular auf die offizielle Mail-Seite geleitet. Das Ticket-Formular fragt keine Mail mehr ab. Abbruch und Merge-OK auf der Mail-Seite löschen den gespeicherten Rückweg, damit er bei einem späteren Besuch nicht wiederkehrt. Dieser Ersatz übernimmt #1397 auf den aktuellen develop.
Details
Takes over the still-draft in-repo PR #1397 (no write on the org branch). Head is rebased onto develop
6e2cc5b(#1404) with no file overlap.Logged-in users without
user.mailare redirected to/account/mailwithsetRedirect: true. The origin is copied into session storage andredirectPathis consumed. AfterverifyMailthe stored destination is restored. Cancel, merge-OK and a handled merge-401 clear both the store andredirectPath. The quote/order guest path is latched on first render so URL cleanup cannot trip the mail gate.Declared deviations from CONTRIBUTING:
src/screens/support-issue.screen.tsxandsrc/screens/edit-mail.screen.tsx. New branches are covered bysrc/__tests__/support-issue-receiver-iban.test.tsx,src/__tests__/edit-mail-return.test.tsxandsrc/__tests__/session-store.test.tsx.user.mailso the mail gate does not hide the form. The visible form for a user who already has mail is unchanged.e2e-stack/specs/support.spec.tsstill uses factory users that already have mail, so the create-ticket path stays green. The new gate is covered by unit tests.Supersedes #1397.