Scénarios par domaine
Vérifié contre le produit le .
Cette page porte la préparation commune. Les dix-sept scénarios s’y réfèrent au lieu de répéter leur montage — c’est ce qui fait qu’une recette complète tient en trois heures plutôt qu’en cinq.
Lisez le gabarit une fois avant d’écrire ou de jouer un scénario ; tout ce qui suit le suppose acquis.
Les deux socles de départ
Section intitulée « Les deux socles de départ »Chaque scénario déclare, en préparation, lequel des deux il utilise. Il n’y en a pas de troisième.
Socle A — le jeu de démonstration
Section intitulée « Socle A — le jeu de démonstration »docker compose up -d postgres redis solvercd packages/db && bun run db:migratecd ../.. && bun run devbun run demo:seedVous obtenez l’Institut Supérieur Delacroix — DÉMO : 2 campus, 5 bâtiments, 60 salles, 19 promotions, 80 enseignants, ~430 cours dont ~2 900 séances déjà placées. La commande est idempotente : elle détruit et recrée le tenant, même graine, mêmes données.
| Compte | Mot de passe | Ce qu’il est |
|---|---|---|
demo@delacroix.example |
Demo-Delacroix-2026! |
administrateur |
prof@delacroix.example |
(même mot de passe) | enseignant, lié à une fiche |
etudiant@delacroix.example |
(même mot de passe) | étudiant, lié à une fiche |
Employez-le dès qu’un scénario a besoin de volume ou de cas réalistes : planning, contraintes, optimisation, publication, analytique, mon planning.
Socle B — l’établissement construit à la main
Section intitulée « Socle B — l’établissement construit à la main »Pour tout ce qui porte sur la saisie, les droits et l’isolation : on ne peut pas recetter la création d’un campus sur une base qui en contient déjà deux.
docker compose up -d postgres rediscd packages/db && bun run db:migratecd ../.. && bun run devPuis, sur http://localhost:3000 :
-
alice s’inscrit — « Créer un compte », avec un « Nom de l’établissement » : « School A ».
-
alice invite bob et dave — Administration → Utilisateurs → « Inviter » — et copie le lien affiché. Dans un autre navigateur, chacun ouvre son lien, crée son compte, revient sur le lien et accepte explicitement.
-
alice crée trois rôles — Administration → Rôles :
- « Demandeur » :
room.book; - « Valideur A » :
booking.approve; - « Planificatrice » :
planning.edit+planning.solve, sansplanning.publish.
- « Demandeur » :
-
alice attribue « Demandeur » à bob sans périmètre, « Valideur A » à dave limité au campus A, et « Planificatrice » à erin.
-
Référentiel → Patrimoine : deux campus A et B, deux bâtiments BAT-A (campus A) et BAT-B (campus B), deux équipements (Projecteur, Tableau blanc), et quatre salles :
Salle Bâtiment Capacité Équipements PMR A-101 BAT-A 40 Projecteur non A-102 BAT-A 100 Projecteur + Tableau blanc non A-103 BAT-A 20 — oui B-201 BAT-B 30 — non
Ce scénario enchaîne assez de requêtes d’authentification pour déclencher le limiteur de débit — un refus muet qui n’a rien à voir avec vos identifiants. Il est décrit une fois pour toutes sur Les pièges connus.
Les comptes
Section intitulée « Les comptes »Les prénoms sont stables sur toute la recette : un scénario qui dit « bob » parle du même profil qu’un autre.
| Compte | Rôle | Ce qu’il sert à éprouver |
|---|---|---|
| alice | administratrice, créatrice de l’établissement | référentiel, rôles, approbation, publication |
| bob | « Demandeur » — room.book |
réservation, quotas, notifications |
| dave | « Valideur A » — booking.approve, limité au campus A |
la portée d’un rôle, en refus comme en accord |
| carol | administratrice d’un second établissement | l’isolation |
| erin | « Planificatrice » — planning.edit + planning.solve, sans planning.publish |
la couture préparation / publication |
erin est le compte qu’aucun plan existant n’avait : sans un rôle qui prépare sans pouvoir publier, la moitié du domaine Publication n’est pas recettable.
L’ordre et les durées
Section intitulée « L’ordre et les durées »L’ordre suit les dépendances, pas l’alphabet — il est détaillé sur la page d’entrée.
| # | Domaine | Socle | Durée | Étiquette |
|---|---|---|---|---|
| 1 | Identité et invitations | B | 12 min | manuel |
| 2 | RBAC et scoping | B | 16 min | manuel |
| 3 | Référentiel et patrimoine | B | 10 min | automatisable |
| 4 | Pédagogie | B | 8 min | automatisable |
| 5 | Calendrier académique | B | 8 min | automatisable |
| 6 | Imports | B | 10 min | automatisable |
| 7 | Contraintes et scoring | A | 12 min | manuel |
| 8 | Planning et placement | A | 15 min | manuel |
| 9 | Optimisation et solveur | A | 12 min | manuel |
| 10 | Publication | A | 12 min | manuel |
| 11 | Indisponibilités de salle | B | 10 min | automatisable |
| 12 | Réservation et quotas | B | 16 min | manuel |
| 13 | Approbations | B | 10 min | manuel |
| 14 | Notifications | B | 12 min | manuel |
| 15 | Mon planning | A | 6 min | automatisable |
| 16 | Analytique d’occupation | A | 6 min | automatisable |
| 17 | Isolation multi-établissements | autonome | 10 min | manuel |
Total : 3 h 05. Les deux socles se montent en amont — comptez 10 minutes pour A, 25 pour B.
Ce que les tests automatisés couvrent déjà
Section intitulée « Ce que les tests automatisés couvrent déjà »L’étiquette automatisable n’est pas une intention : elle s’appuie sur ce qui existe.
apps/api porte 34 suites de bout en bout, à peu près une par domaine. Chaque scénario
nomme la suite qui le couvre dans sa traçabilité.
Deux conséquences pratiques :
- un scénario marqué automatisable et déjà couvert par une suite se joue en dernier, ou pas du tout si le temps manque — le test l’a déjà fait ;
- un scénario automatisable sans suite associée est une dette identifiée : c’est là que l’écriture d’un test rapporte le plus.
Un scénario manuel porte sa justification en une ligne : deux navigateurs simultanés, un rendu visuel, une progression non déterministe. Sans elle, l’étiquette n’est qu’un aveu.
Pages liées
Section intitulée « Pages liées »- La recette — les deux niveaux, l’ordre de parcours, les conventions.
- Le gabarit d’un scénario — le format, les six sections, la table des ports.
- Avant une démonstration — la checklist de pré-vol.
- Chemin critique — les trente minutes qui précèdent une démonstration.