sokko-g/docs/FEATURE_CHECKLIST.md
Shinuwa 09a2d4b71a
All checks were successful
Deploy Sokko G / deploy (push) Successful in 18s
Protect toolbox data after IndexedDB startup failures
2026-09-12 23:05:16 +02:00

5.7 KiB

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.
  • Vérifier qu'une erreur d'ouverture ou de lecture au démarrage bloque les écritures, créations, imports et exports sans afficher une fausse liste vide ; plusieurs tentatives puis une reprise réussie doivent retrouver les données initiales sans recharger la page ni les effacer.
  • 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.
  • Vérifier qu'un changement de page avec le focus actif remplace immédiatement le contenu de l'éditeur ; une mise à jour externe de la même page attend le blur sans déplacer la sélection pendant la saisie ni reprendre le focus ensuite.
  • 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

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.