diff --git a/docs/proposals/loyalty-go-live-readiness.md b/docs/proposals/loyalty-go-live-readiness.md index 6cc126f4..0f4c9a9e 100644 --- a/docs/proposals/loyalty-go-live-readiness.md +++ b/docs/proposals/loyalty-go-live-readiness.md @@ -181,6 +181,47 @@ From the 2026-05-17 list, items #2 (Test 2), #3 (Hetzner doc check), missing import), and #6 (other-module email audit) are still queued. Items #1 (Test 1 nits) are now closed by this session's commits. +## 2026-05-19 update — Test 2 complete + +Cross-store re-enrollment at FASHIONOUTLET (same email as Test 1's +successful `+17mayf@gmail.com`) walked cleanly. Behavioral checks all +green, one copy bug fixed. + +### Test 2 verification + +| Check | Result | +|---|---| +| Exactly 1 `loyalty_cards` row for customer / merchant — no duplicate | ✅ | +| Zero new `email_logs` rows — no duplicate welcome email | ✅ | +| Cross-location locations block lists both Fashion Hub + Fashion Outlet | ✅ | +| Title renders "Vous êtes déjà membre !" (already conditional from prior fix) | ✅ | + +### Bug fixed: contradicting subtitle on success page (`dee2eab2`) + +The title at `enroll-success.html:21` was already `x-text`-conditional +on `enrollContext.already_enrolled` — so it correctly switched between +"Welcome!" and "You're already a member!". But the subtitle just below +at line 24 was a static `{{ _('success.message') }}`, always rendering +"Vous êtes maintenant membre..." even on the already-enrolled branch. +Two contradicting messages stacked. + +Added an `already_enrolled_message` i18n key in en/fr/de/lb and made the +subtitle conditional the same way as the title: + +- EN: "Welcome back — your card is ready whenever you are." +- FR: "Heureux de vous revoir — votre carte est prête à l'emploi." +- DE: "Willkommen zurück — Ihre Karte ist einsatzbereit." +- LB: "Wëllkomm zréck — Är Kaart ass prett wann Dir et sidd." + +### Status board delta + +- Step 6 (web user-journey E2E tests) — Tests 1 ✅ and 2 ✅ done. Tests 3–8 still ahead. + +### Carry over for next session + +- **Test 3** — Staff stamps/points at the terminal (`/store/FASHIONHUB/loyalty/terminal`) +- Items #3 (Hetzner doc check), #4 (unit tests for the B1-F chain), #5 (prospecting `tasks/__init__.py` missing import), #6 (other-module email audit) still queued from the 2026-05-17 follow-up list. + ## Status board | # | Pre-launch step | State | Notes |