From 4b64233b5fab84d6a2d265d000ef482477732a4e Mon Sep 17 00:00:00 2001 From: Samir Boulahtit Date: Tue, 19 May 2026 22:27:16 +0200 Subject: [PATCH] docs(loyalty): record 2026-05-19 Test 2 complete + subtitle fix End-of-day update. Test 2 (cross-store re-enrollment at FASHIONOUTLET with the email from Test 1) walked cleanly with all behavioral checks green: - exactly 1 loyalty_cards row, no duplicate - zero new email_logs rows (no duplicate welcome email) - cross-location locations block lists both stores - title already-enrolled branch renders correctly One copy bug surfaced and was fixed in dee2eab2: the title at enroll-success.html:21 was already x-text-conditional on already_enrolled, but the subtitle below was a static {{ _('success.message') }} so two contradicting messages stacked ("You're already a member!" + "You're now a member..."). Made the subtitle conditional the same way and added a new already_enrolled_message i18n key in en/fr/de/lb. Test 2 marked done. Carries forward Test 3 plus the existing follow-ups (Hetzner doc check, B1-F unit tests, prospecting tasks/__init__ fix, other-module email audit). Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/proposals/loyalty-go-live-readiness.md | 41 +++++++++++++++++++++ 1 file changed, 41 insertions(+) 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 |