# Coaster World v1.97.0 — Tests fonctionnels complets / Pré-release QA

Base : **v1.96.0**.

## Centre QA pré-release

- Nouvelle page **Administration → QA pré-release** (`/admin/qa`).
- Rapport JSON disponible sur `/admin/qa.json`.
- Préflight totalement **en lecture seule** : aucune modification des données métier.
- État global : prêt, à surveiller ou bloqué avant Release Candidate.
- Contrôle des principales routes publiques, invité, membre et administration.
- Vérification des middlewares critiques `guest`, `auth`, `account.active` et `admin`.
- Vérification du schéma attendu pour les comptes, le social, les visites, Road Trips V2, communauté, progression, notifications, modération et Live.
- Contrôles d'intégrité ciblés : administrateur actif, doublons d'identité, membres/étapes Road Trip orphelins, commentaires communauté orphelins et jobs échoués.
- Contrôle minimal de disponibilité du catalogue public.

## Checklist fonctionnelle multi-comptes

Le Centre QA contient 8 scénarios manuels :

1. compte & authentification ;
2. amis, blocage & confidentialité ;
3. groupes & sorties ;
4. visite & Mode Visite ;
5. Road Trips V2 ;
6. communauté ;
7. progression & notifications ;
8. sécurité, confidentialité & administration.

Les statuts `À tester / Validé / Bug détecté` et les notes sont stockés uniquement dans le `localStorage` du navigateur. Ils ne créent aucune table et ne modifient aucun compte.

Un export JSON local de la checklist est disponible depuis la page QA.

## Commandes QA

Nouvelle commande de préflight :

```bat
php artisan cw:qa:preflight
```

Sortie JSON :

```bat
php artisan cw:qa:preflight --json
```

Raccourci Laragon/Windows :

```bat
tools\qa_preflight_windows.bat
```

## Suite de tests Laravel

- Nouveau `CriticalRouteContractTest` pour les protections des routes membre/admin et les rate limits des actions sensibles.
- Nouveau test du catalogue de scénarios QA.
- Nouveau test de présence des traductions QA dans FR / EN / DE / ES / IT.
- L'ancien `ExampleTest` n'appelle plus l'accueil avec une base vide ; il teste désormais le contrat de la route d'accueil sans dépendre du catalogue.

La configuration `phpunit.xml` continue d'utiliser SQLite en mémoire, le cache `array`, les sessions `array` et la queue `sync` pour l'environnement de test.

## Administration

- Ajout du lien **QA pré-release** dans la navigation admin.
- Ajout d'un accès direct au Centre QA depuis le dashboard administration.
- Réutilisation des composants Diagnostics existants pour garder une interface cohérente et responsive.

## Base de données

**Aucune migration SQL.**
