# LineUp France - Checklist E2E Prod (Client + Liner + BO)

Date reference: 2026-03-12
Scope: `lineupfrance.com` + apps mobile release + BO web
Goal: valider le parcours metier complet sans ambiguite avant go-live ou apres patch critique.

## 1) Pre-conditions

1. Build release installe sur 1 device client et 1 device liner.
2. BO deploye sur la release cible.
3. `preflight_cpanel.sh` et `smoke_web.sh` deja verts.
4. Un compte admin BO disponible.
5. Trois comptes de recette disponibles:
- `client`
- `liner A`
- `liner B`

## 2) Comptes de recette requis

1. Client:
- email/password login OK
- au moins un moyen `pay_in` par defaut valide
2. Liner A:
- email/password login OK
- KYC approuve
- compte `disponible`
- moyen `pay_out` valide
3. Liner B:
- email/password login OK
- KYC approuve
- compte `disponible`
- moyen `pay_out` valide
4. Admin BO:
- acces `/bo/login`
- acces missions / KYC / finance / payouts

## 3) Gate infra rapide

1. Lancer:
- `/home/<CPANEL_USER>/lineupfrance/current/scripts/preflight_cpanel.sh`
- `/home/<CPANEL_USER>/lineupfrance/current/scripts/smoke_web.sh https://lineupfrance.com`
2. Critere:
- `Preflight OK`
- `0 failed`
3. Point critique REST:
- `PATCH/DELETE` ne doivent pas etre reecrits en `GET`

## 4) Setup metier avant test

1. Cote client, verifier la presence d un moyen de paiement par defaut.
2. Cote liner A et B, verifier dans le profil:
- piece d identite presente
- statut KYC visible
- RIB/IBAN present
3. Cote BO > KYC:
- verifier qu aucun des deux liners n est en etat refuse inattendu
4. Cote client, vider les missions de test precedentes si elles brouillent la lecture.

## 5) Parcours E2E principal

### 5.1 Creation mission client

1. Ouvrir app client.
2. Creer une mission avec:
- adresse precise
- budget non nul
- horaire proche mais futur
3. Recommande pour test geoloc:
- `Gare de Cormeilles-en-Parisis, 95240 Cormeilles-en-Parisis`
4. Attendus:
- mission visible en `En attente`
- mission visible dans le BO > missions
- aucun pin parasite hors zone attendue

### 5.2 Double candidature liner

1. Ouvrir app liner A, postuler.
2. Ouvrir app liner B, postuler.
3. Attendus cote client:
- `2` candidatures visibles sur la mission
- les deux profils liners affiches
4. Attendus cote BO:
- mission detail affiche `2` candidatures
- les deux en `pending`

### 5.3 Choix d un seul liner

1. Cote client, ouvrir `Candidatures`.
2. Accepter `liner A`.
3. Attendus:
- `liner A` passe `accepted`
- `liner B` passe `rejected`
- mission reste coherentement exploitable cote client et BO
4. No-Go si:
- deux liners restent acceptes
- le client peut payer sans choix explicite

### 5.4 Confirmation / paiement

1. Cote client, ouvrir `Paiement`.
2. Payer avec la methode par defaut.
3. Attendus cote client:
- ecran paiement succes
- mission bascule en `En cours` / suivi actif
4. Attendus cote liner A:
- mission visible dans `Mes missions`
- suivi mission accessible
5. Attendus cote BO:
- detail mission affiche paiement cree
- provider / statut / reference visibles
6. No-Go si:
- paiement KO
- mission non attribuee apres paiement
- liner selectionne ne voit pas la mission

### 5.5 Communication client <-> liner

1. Depuis le suivi mission client, ouvrir le chat.
2. Envoyer un message client.
3. Depuis le liner, repondre.
4. Attendus:
- message visible des deux cotes
- preview `Messages` cote client et liner mise a jour
- badge/non-lu coherent si non ouvert

### 5.6 Progression mission liner

1. Liner A enchaine:
- `Demarrer la mission`
- `Arrive sur place`
- `Dans la file`
- `Client arrive`
- `Place transmise`
- `Mission terminee`
2. Attendus cote client:
- suivi mis a jour en temps reel
- timeline/cohorte etat coherente
3. Attendus cote BO:
- timeline mission enrichie
- statut final `completed`
4. No-Go si:
- un statut critique ne passe pas
- client et liner ne voient pas le meme etat

### 5.7 Preuves mission

1. Depuis le liner, envoyer au moins une preuve.
2. Attendus cote client:
- bloc `Preuves mission` visible
3. Attendus cote BO:
- preuve visible dans detail mission
- moderation possible
4. Bonus:
- valider/refuser une preuve depuis BO et verifier le reflet cote apps

### 5.8 Settlement / wallet / retrait

1. Apres `Mission terminee`, verifier:
- wallet liner credite
- historique wallet alimente
2. Depuis l app liner, ouvrir `Wallet`.
3. Demander un retrait vers le moyen `pay_out` par defaut.
4. Attendus BO:
- payout visible
- statut payout coherent
5. No-Go si:
- mission terminee sans credit wallet
- retrait impossible avec compte valide

## 6) Verifications BO obligatoires

1. `/bo/missions`
- mission visible
- detail mission complet
2. detail mission
- candidatures
- liner retenu
- paiement
- timeline
- preuves
- litiges si ouverts
3. `/bo/finance`
- paiement filtre trouvable
- retrait trouvable
4. `/bo/kyc`
- les deux liners visibles avec bon statut

## 7) Verifications geoloc obligatoires

1. Sur mission `Cormeilles-en-Parisis`, verifier:
- app client: map mission correcte
- app liner: distance cohérente
- pas de pin errone dans Paris intra-muros
2. `Partager ma position` cote liner:
- position ne doit pas disparaitre au moment de la candidature ou du suivi

## 8) Verifications notifications obligatoires

1. Client recoit notif candidature liner.
2. Liner retenu recoit notif selection/paiement.
3. Liner refuse recoit notif rejet.
4. Client et liner recoivent notif changement d etat mission si le flux l emet.
5. Les centres `Notifications` des apps restent coherents avec les events lus/non lus.

## 9) Resultat attendu du scenario principal

Le scenario est valide si les points suivants sont tous vrais:
1. Une mission client peut recevoir `2` candidatures.
2. Un seul liner peut etre retenu.
3. Le paiement client confirme bien le liner choisi.
4. Le liner retenu voit et pilote la mission.
5. Le client voit le suivi temps reel et le chat.
6. Le BO voit candidatures, paiement, preuves et timeline sur un meme detail mission.
7. La fin mission credite le wallet liner.
8. Le retrait liner est possible.

## 10) No-Go immediat

1. `PATCH/DELETE` re-ecrits en `GET`
2. login mobile KO
3. mission geolocalisee au mauvais endroit
4. multi-candidature casse ou deux liners selectionnables
5. paiement non lie au liner choisi
6. mission terminee sans credit wallet
7. retrait liner KO avec compte valide
8. BO detail mission incomplet ou 500/419

## 11) Trace minimale a conserver

1. ID mission testee
2. email du client
3. email du liner retenu
4. email du liner refuse
5. statut paiement BO
6. statut payout BO
7. captures ecran si ecart

## 12) Raccourci local avant prod

Pour rejouer le coeur du flux en local BO avant prod:
- `./scripts/e2e_local_lineup.sh`

Critere local:
- `38 passed, 0 failed`
