Ce document sert de filet anti-régression après refactors (hooks, Firebase RTDB, pages pizzaiolo, checkout).
Objectif : en 10–15 minutes, valider que l’app est « utilisable » sur les parcours critiques.
- Avoir une base RTDB avec au moins 1 truck public + menu.
- Avoir un compte Google Firebase Auth (client) et un compte « pro » (pizzaiolo) relié à un
truckId. - En local, vous pouvez aussi utiliser les émulateurs (
npm run firebase:emulators).
- Aller sur
/explore - Attendu : liste des camions visible, filtres utilisables, pas d’erreur console bloquante.
- Ouvrir un camion via la route canon
/:truckIdtruckIdpeut être une clé RTDB (ex:-Oi...) ou un slug (ex:TEST_04_01).
- Attendu : menu affiché, prix cohérents (cents → euros), ajout au panier possible.
- Aller sur
/panier - Attendu : items présents, quantités modifiables, total recalculé.
Rappel sécurité : pas de secret Stripe côté front, et
paidest écrit uniquement par webhook côté Functions.
- Depuis
/panier→ bouton « payer » / « valider » - Attendu : si non connecté → redirection login.
- Une fois connecté → lancer le checkout
- Attendu : appel Functions OK, redirection Stripe Checkout (ou retour sessionId/URL).
- Après paiement test → retour page success
- Attendu : création/affichage de commande,
orders/{orderId}.payment.paymentStatusévolue àpaidvia webhook.
- Aller sur
/order/:orderId - Attendu : la page écoute RTDB, affichage cohérent du statut, pas de fuite d’abonnement (pas de multiples callbacks).
Note : l’avancement automatique des statuts est désactivé (workflow manuel côté pizzaiolo). Le tracking doit rester stable et réactif aux changements RTDB.
- Se connecter avec un compte pro
- Attendu : Navbar affiche l’accès pro (Live / menu / commandes) sans clignotement étrange.
- Aller sur
/pro/menu - Attendu :
- menu existant listé
- ajout d’un item : validation (prix/tailles) + écriture RTDB
- suppression d’un item : confirmation + suppression RTDB
- Aller sur
/pro/commandes - Attendu : liste des commandes payées, stats visibles, changement d’onglets sans crash.
npm run lint→ OKnpm run build→ OK
- Noter : route, user UID, truckId, orderId, timestamp.
- Copier la trace console (si présente).
- Vérifier les données RTDB sur les paths :
public/trucks/{truckId}public/trucks/{truckId}/menu/itemsorders/{orderId}pizzaiolos/{uid}