76 lines
5.1 KiB
Markdown
76 lines
5.1 KiB
Markdown
# Feature Checklist
|
|
|
|
Checklist à suivre lors de l'ajout ou de la modification d'un outil, d'une page jeu ou d'un format de données.
|
|
|
|
## Outil Toolbox
|
|
|
|
- Ajouter ou modifier le composant dans `website/src/features/toolboxes/modules/`.
|
|
- Déclarer ses métadonnées et son chargeur dans `website/src/features/toolboxes/toolboxModuleRegistry.js`. Le registre React `modules/toolboxModuleComponents.jsx` est partagé par la toolbox et la Librairie ; `modules/index.jsx` expose le shell.
|
|
- Vérifier le chargement à la demande en toolbox et dans chaque catégorie de la Librairie.
|
|
- Dans la Librairie, vérifier les liens directs vers un outil, les changements d'ancre et le retour navigateur ; une nouvelle sélection ou une sortie de page doit annuler les défilements différés précédents.
|
|
- Ajouter les textes nécessaires dans `website/public/data/site.json`.
|
|
- Mettre à jour la validation de `site.json` dans `tests/helpers/data-validation.mjs`.
|
|
- Mettre à jour la normalisation et le stockage compact dans `website/src/features/toolboxes/storage/modules/<outil>.js`, puis vérifier l'export public dans `website/src/features/toolboxes/storage/toolboxStorage.js`.
|
|
- Mettre à jour `docs/STORAGE_SCHEMA.md`.
|
|
- Vérifier l'import et l'export si l'outil stocke des données.
|
|
- Pour une modification de persistance, vérifier les écritures successives en succès/échec, les suppressions, ainsi qu'un import concurrent avec une édition ; un échec ne doit pas restaurer une valeur jamais confirmée.
|
|
- Si l'outil a un contenu représentable en texte, ajouter ou vérifier l'import/export texte round-trip depuis le toggle import/export du header.
|
|
- Si l'outil porte un état de progression, vérifier que l'import texte repart de l'état initial attendu.
|
|
- Vérifier l'affichage dans la page toolbox complète.
|
|
- Vérifier l'affichage dans le panneau latéral.
|
|
- Pour le tutoriel toolbox, vérifier le démarrage unique, la fermeture et le changement de toolbox en cours de visite ; une autre toolbox doit démarrer à la première étape et ne pas consommer les indicateurs de la précédente.
|
|
- Pour le Bloc Note, vérifier la sélection, l'ajout, le renommage et la suppression de pages en page complète, panneau latéral et mobile.
|
|
- Pour les dessins temporaires et l'historique du simulateur de chance, vérifier l'isolation par clé de session lors des changements de page/outil et après rechargement ; une navigation seule ne doit pas écraser les données de l'autre clé.
|
|
- Pour le simulateur de chance, vérifier que les brouillons suivent le taux et l'outil actifs, restent intacts lors d'un rendu sans rapport et se valident au blur selon le champ.
|
|
- Pour le visualiseur d'images, vérifier la remise à zéro des marqueurs et des modes dessin/gomme au remplacement de l'image.
|
|
- Pour l'éditeur de couverture, vérifier les décodages concurrents, les erreurs après fermeture et la libération des bitmaps/URLs ; une image en chargement ne doit pas permettre de valider la couverture précédente.
|
|
- Pour Mémos, vérifier l'édition courte, les couleurs, la réorganisation et la bande déroulante.
|
|
- Vérifier qu'une notification ou une mise à jour sans rapport ne remplace pas un brouillon Mémos avant sa validation au blur.
|
|
- Pour l'arbre d'objectifs, vérifier la sélection après suppression/import et le retour à Base quand le nœud sélectionné devient une étape sans onglet Contenu.
|
|
- Vérifier le mode une colonne et deux colonnes.
|
|
- Vérifier que l'ajout, la suppression et la réorganisation respectent `moduleOrder.one` et `moduleOrder.two`.
|
|
- Vérifier le quota de stockage si l'outil manipule des données lourdes.
|
|
|
|
## Page Jeu
|
|
|
|
- Ajouter les données dans `website/public/data/`.
|
|
- Ajouter les images dans `website/public/static/img/games/<gameId>/`.
|
|
- Déclarer le jeu dans `website/public/data/site.json`.
|
|
- Vérifier la page `/games`.
|
|
- Vérifier la page `/games/<gameId>`.
|
|
- Vérifier le chargement à la première visite, la conservation des données pendant la navigation et les erreurs réseau ; sous StrictMode, les requêtes abandonnées ne doivent pas remplacer les données actuelles ni afficher d'erreur d'annulation.
|
|
- Vérifier le bouton toolbox et le panneau latéral.
|
|
- Vérifier le breadcrumb.
|
|
- Vérifier les textes avec retours à la ligne.
|
|
|
|
## Listes de jeu
|
|
|
|
- Ajouter la liste JSON dans `website/public/data/<gameId>/lists/`.
|
|
- Lancer `npm run lists:index`.
|
|
- Vérifier que `index.json` est régénéré.
|
|
- Vérifier que `nom` est présent sur chaque élément.
|
|
- Vérifier que `description` et `quantite` restent facultatifs.
|
|
- Vérifier la copie au format checklist.
|
|
- Vérifier la création directe de checklist quand une toolbox est associée.
|
|
|
|
## Style
|
|
|
|
- Réutiliser les tokens existants avant d'ajouter une nouvelle couleur ou taille.
|
|
- Réutiliser les classes de boutons existantes.
|
|
- Vérifier les boutons icon, danger, primary et secondary.
|
|
- Vérifier les cartes, panels et scrollbars.
|
|
- Vérifier les états hover/focus.
|
|
- Vérifier mobile et desktop quand le changement touche la mise en page.
|
|
|
|
## Validation avant push
|
|
|
|
```bash
|
|
npm run check
|
|
```
|
|
|
|
Le check doit passer avant de pousser :
|
|
|
|
- syntaxe serveur et Vite ;
|
|
- génération des index de listes ;
|
|
- tests Node ;
|
|
- build de production.
|