Tests navigateur : accueil, tutoriel, aide, installation, mise à jour ; plan : résultat

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Pierre MARTIN
2026-11-09 15:35:00 +01:00
co-authored by Claude Opus 5.5
parent 441bca1bd7
commit 5fdca812d9
7 changed files with 644 additions and 30 deletions
+78 -1
View File
@@ -73,4 +73,81 @@ Chaque écran (accueil, étapes du tutoriel, onglets et questions de l'aide) a s
## Résultat
À remplir à la clôture.
Exécuté le 2026-11-09 sur la branche `accueil-tutoriel-aide`, construite sur
`adresses-ecrans` (0e.4, en recette).
1. **Accueil** (`#/accueil`, `app/src/ui/home-view.ts`, `home-model.ts`).
Lancée sans adresse d'écran (icône, adresse du site), l'application
s'ouvre sur l'accueil ; `#/` reste la partie. Premier lancement (rien de
fait : ni choix, ni partie terminée, ni étape du tutoriel) : logo,
plateau de départ, « Bienvenue à la table », « Je découvre » (lien
`#/tutoriel/1`) et « Je connais les règles » (lien `#/`), une seule fois.
Ensuite : la partie en cours (miniature, comptes, « Reprendre la partie »
en action principale, ou « Nouvelle partie » s'il n'y a rien à
reprendre), l'invitation à installer, une carte « Les règles du jeu »
(le tutoriel : seul contenu d'apprentissage qui existe), la progression
(« N parties jouées · M gagnées », sans les leçons) et la phrase de
l'Atelier du Huit. Le logo de la barre haute et le menu mènent à
l'accueil.
2. **Installation** (`install.ts`) : invite gardée de `beforeinstallprompt`,
sinon marche à suivre en trois étapes (Firefox, iPhone) dans une feuille
à son adresse, `#/installer`. Carte après la première partie terminée,
« Plus tard » une fois, retour après trois parties de plus ; ligne du
menu tant que l'application n'est pas installée ; plus rien en
`display-mode: standalone` ni après `appinstalled` (retenu dans les
réglages).
3. **Tutoriel** : texte unique `docs/tutoriel/regles.md` (format :
`docs/tutoriel/README.md`), copié par `make site`, CC BY-SA 4.0, texte de
la charte. Huit étapes, écrans « à vous » aux étapes 3, 4, 6 et 8,
adresses `#/tutoriel/<n>`, `#/tutoriel/<n>/a-vous`, `#/tutoriel/fin`.
Positions par identifiants gnubg ; coup illustré joué seul après 1 s,
pion par pion, avec « Revoir » ; sens du jeu en pointillés sur liseré
ivoire (étape 2). Domaine : `app/src/domain/learning/tutorial.ts`
(`MovePractice`, `illustratedMove`, `shouldTake`) ; le moteur dit les
demi-coups permis, et un coup est juste s'il mène à la position d'un des
coups attendus. Refus : le pion revient, une phrase dit pourquoi ; succès :
coche, vibration « pion posé », « Continuer » principal. La barre de
progression ne lie que les étapes déjà vues. `app/tests/tutorial.test.ts`
joue chaque coup légal de chaque écran « à vous » sur le vrai moteur.
Fiche du glossaire `camp.md` ajoutée.
4. **Aide** : onglet « Jouer » en questions (titres des scénarios reformulés,
descriptions ajoutées là où il n'y en avait pas, étapes cachées, lien
« Voir sur le plateau » par l'étiquette `@position:`), carte du tutoriel en
tête, « Les mots du jeu » en cartes triées avec nom anglais, renvois et
recherche sans accents, « À propos » (licences, crédits, version publiée
lue dans `version.json`). Le bouton « Aide » de la partie ouvre la
question du moment (`help-context.ts`, titres vérifiés par un test).
5. **Mise à jour** (`updates.ts`, `web/sw.js`) : le service worker installe
la nouvelle version puis attend (plus de `skipWaiting()` à
l'installation, sauf à la première où rien n'attend) ; bandeau
« Nouvelle version disponible » en haut, jamais pendant un coup en cours ni
sur « Reprendre l'ancienne » ; « Mettre à jour » envoie `skip-waiting`,
rechargement au `controllerchange`, la partie reprend. Menu « Rechercher
une mise à jour » (`registration.update()`), qui répond « Vous avez la
dernière version. ».
6. **Scénarios** : `decouvrir-l-application.feature`,
`installer-l-application.feature`, `apprendre-les-regles.feature`, et
« Comment mettre l'application à jour ? » dans
`regler-l-application.feature`, exécutés par Cucumber.
7. **`make test-browser`** : `tests/browser/accueil.mjs` (premier lancement,
tutoriel complet avec un geste refusé puis juste sur chaque écran
« à vous », installation avec `beforeinstallprompt` simulé dans Chromium,
aide, mise à jour sur un second site dont le test publie une deuxième
version) ; `play.mjs` adapté (accueil, tutoriel et installation ont leur
adresse). Captures dans `build/browser-shots/accueil-tutoriel/`.
**Écarts et points à trancher**
- Les adresses `#/tutoriel/<n>/a-vous`, `#/tutoriel/fin` et `#/installer`
s'ajoutent au tableau de l'ADR 0013 (amendement à consigner).
- Étape 7 : avec la règle de Jacoby, active en partie libre, un gammon ne
vaut 2 points qu'une fois le videau doublé (le moteur compte 1 point
sinon). Le texte de la charte est gardé, avec une phrase ajoutée qui le
dit ; à valider par Pierre.
- Les boutons de l'écran « à vous » du videau s'appellent « Je prends » et
« Je passe », pour ne pas se confondre avec « Passer » (le tutoriel).
- « Toutes les leçons » et la prochaine leçon attendent 1g ; la carte
« Les règles du jeu » tient leur place.
- La partie commencée d'office au chargement compte dans « parties
commencées » : le premier lancement reste affiché jusqu'à une partie
commencée de plus.