Protocole de validation
Plan de test — RoleBase UdN v12
Version : 12.0 — Date : 21/05/2026
Objectif : Valider les fonctionnalités de la plateforme après chaque déploiement
Voila le lien vers le fchier excel modèle : https://partage.universite-du-nous.org/s/gxffxSKnB8Rdxxq
| Symbole |
Signification |
| ✅ |
Test passé |
| ❌ |
Test échoué — bug à documenter |
| ⚠️ |
Test partiel — comportement dégradé |
| — |
Non testé |
Pour chaque test : remplir la colonne Résultat, Commentaire et Bug dans le fichier Excel associé.
AUTH — Authentification
| N° |
Action |
Prérequis |
Résultat attendu |
| AUTH-01 |
Se connecter avec email/mot de passe valide |
Compte existant |
Redirection vers le tableau de bord de l'orga |
| AUTH-02 |
Se connecter avec email/mot de passe invalide |
Compte existant |
Message d'erreur affiché, pas de redirection |
| AUTH-03 |
Créer un nouveau compte |
Email non utilisé |
Compte créé, email de confirmation envoyé |
| AUTH-04 |
Se déconnecter |
Être connecté |
Redirection vers la page de connexion |
ORG — Organisation
| N° |
Action |
Prérequis |
Résultat attendu |
| ORG-01 |
Créer une nouvelle organisation |
Être connecté |
Organisation créée, redirection vers l'orga |
| ORG-02 |
Modifier le nom et logo de l'orga |
Être admin de l'orga |
Modifications sauvegardées et visibles |
| ORG-03 |
Modifier la couleur d'accent |
Être admin de l'orga |
Couleur appliquée sur l'interface |
| ORG-04 |
Modifier le message de bienvenue |
Être admin de l'orga |
Message visible sur la page d'accueil |
| ORG-05 |
Changer le mode de gouvernance (Libre/Agile/Holacratique) |
Être admin |
Permissions UI adaptées au mode choisi |
| ORG-06 |
Passer en mode Holacratique → confirmation modale |
Être admin |
Modale de confirmation affichée, rôles structurels créés |
ORG — Organigramme
| N° |
Action |
Prérequis |
Résultat attendu |
| ORG-10 |
Visualiser l'organigramme |
Orga avec cercles |
Cercles et rôles affichés correctement |
| ORG-11 |
Cliquer sur un cercle → voir les sous-cercles |
Cercle avec enfants |
Sous-cercles affichés |
| ORG-12 |
Filtrer par 'Mes rôles' |
Être membre d'un rôle |
Seuls mes rôles sont mis en surbrillance |
| ORG-13 |
Distinction visuelle cercle (🫧 small-caps) vs rôle |
Orga avec cercles et rôles |
Cercles en small-caps, rôles normaux |
ROLE — Rôles & Cercles
| N° |
Action |
Prérequis |
Résultat attendu |
| ROLE-01 |
Créer un nouveau rôle dans un cercle |
Être admin/leader |
Rôle créé et visible dans l'organigramme |
| ROLE-02 |
Modifier la raison d'être d'un rôle |
Être admin/leader |
Modification sauvegardée |
| ROLE-03 |
Ajouter des redevabilités à un rôle |
Être admin/leader |
Redevabilités sauvegardées et affichées |
| ROLE-04 |
Ajouter des règles communes à un rôle |
Être admin/leader |
Règles sauvegardées |
| ROLE-05 |
Assigner un membre à un rôle |
Être admin/leader + membre existant |
Membre assigné, visible dans l'organigramme |
| ROLE-06 |
Retirer un membre d'un rôle (bouton UserMinus) |
Membre assigné |
Membre retiré du rôle |
| ROLE-07 |
Archiver un rôle |
Être admin/leader |
Rôle archivé et non visible |
| ROLE-08 |
Créer un cercle (sous-groupe) |
Être admin/leader |
Cercle créé avec rôles structurels |
MBR — Membres
| N° |
Action |
Prérequis |
Résultat attendu |
| MBR-01 |
Inviter un nouveau membre par email |
Être admin |
Email d'invitation envoyé |
| MBR-02 |
Ajouter un membre sans email |
Être admin |
Membre créé sans compte utilisateur |
| MBR-03 |
Voir la liste des membres |
Être connecté |
Liste complète des membres affichée |
TENS — Tensions
| N° |
Action |
Prérequis |
Résultat attendu |
| TENS-01 |
Créer une tension opérationnelle depuis le menu |
Être connecté |
Tension créée avec badge OPÉ |
| TENS-02 |
Créer une tension de gouvernance depuis le menu |
Être connecté |
Tension créée avec badge GOUV |
| TENS-03 |
Créer une tension depuis la popup (nouveau bouton) |
Être connecté |
Popup avec champs Rôle et Type visibles (layout colonne) |
| TENS-04 |
Remplir la description d'une tension |
Tension créée |
Description sauvegardée et affichée |
| TENS-05 |
Valider une tension (passer en Terminé) |
Tension en cours |
Tension dans la liste Terminé |
| TENS-06 |
Rejeter une tension (passer en Bloqué) |
Tension en cours |
Tension dans la liste Bloqué |
| TENS-07 |
Filtrer tensions par 'Mes rôles' |
Être membre d'un rôle |
Seules les tensions de mes rôles affichées |
| TENS-08 |
Filtrer tensions par 'Cercles' |
Être membre d'un cercle |
Tensions du cercle affichées |
| TENS-09 |
Filtrer tensions par 'Toute l'organisation' |
Être connecté |
Toutes les tensions de l'orga affichées |
| TENS-10 |
Voir le badge OPÉ/GOUV sur les tensions |
Tensions des deux types |
Badges colorés corrects |
PROJ — Projets
| N° |
Action |
Prérequis |
Résultat attendu |
| PROJ-01 |
Créer un nouveau projet |
Être connecté |
Projet créé et visible dans la liste |
| PROJ-02 |
Modifier le statut d'un projet |
Projet existant |
Statut mis à jour |
| PROJ-03 |
Archiver un projet |
Projet existant |
Projet archivé et non visible |
PP — Prochains pas ⚠️ Fortement modifié en v12
| N° |
Action |
Prérequis |
Résultat attendu |
| PP-01 |
Créer un prochain pas en réunion (avec note) |
Être en réunion, tension ouverte |
Prochain pas sauvegardé en BDD |
| PP-02 |
Créer un prochain pas en réunion (sans note) |
Être en réunion, tension ouverte |
Prochain pas sauvegardé même sans note |
| PP-03 |
Valider tension avec PP → apparaît dans Traités |
Prochain pas saisi |
PP visible sous le titre barré dans Traités |
| PP-04 |
PP d'une tension d'un autre membre visible |
Tension d'un autre membre avec PP |
PP visible dans la liste Traités |
| PP-05 |
Rouvrir une tension traitée → PP pré-rempli |
Tension traitée avec PP |
Champ PP pré-rempli avec la valeur existante |
| PP-06 |
PP visible toutes réunions confondues |
PP créé dans une ancienne réunion |
PP affiché même si créé dans une autre réunion |
| PP-07 |
Page 'Prochains pas' — voir mes PP |
PP existants |
Liste des PP avec cercle et réunion associés |
| PP-08 |
Marquer un prochain pas comme fait |
PP existant |
PP barré et marqué fait |
REU — Réunions ⚠️ Fortement modifié en v12
| N° |
Action |
Prérequis |
Résultat attendu |
| REU-01 |
Créer une nouvelle réunion |
Être admin/leader |
Réunion créée avec les étapes par défaut |
| REU-02 |
Démarrer une réunion |
Réunion planifiée |
Interface de réunion active |
| REU-03 |
Étape Inclusion — écrire des notes |
Être en réunion |
Notes sauvegardées |
| REU-04 |
Étape Indicateurs — saisir les valeurs |
Être en réunion, indicateurs configurés |
Valeurs sauvegardées |
| REU-05 |
Étape Checklist — cocher les items |
Être en réunion, checklist configurée |
Items cochés sauvegardés |
| REU-06 |
Triage opé — ajouter une tension inline |
Être en réunion, mode éditable |
Tension créée et ajoutée à l'étape |
| REU-07 |
Triage opé — importer une tension existante |
Tensions disponibles |
Tension importée dans l'étape |
| REU-08 |
Triage opé — valider une tension avec PP |
Tension dans l'étape |
PP sauvegardé, tension dans Traités |
| REU-09 |
Triage opé — PP affiché sous le titre (pas à droite) |
Tension traitée avec PP |
PP affiché EN DESSOUS du titre barré |
| REU-10 |
Triage opé — rouvrir une tension traitée |
Tension traitée |
Tension repasse en À traiter |
| REU-11 |
Étape Prochains pas — voir les PP de la réunion |
PP créés pendant la réunion |
PP affichés en kanban |
| REU-12 |
Terminer la réunion |
Être en réunion |
Réunion marquée comme terminée |
| REU-13 |
Notes réunion → description tension à la validation |
Tension créée en réunion avec notes puis validée |
Description = texte des notes (pas JSON) |
EMAIL — Emails ⚠️ Corrigé en v12
| N° |
Action |
Prérequis |
Résultat attendu |
| EMAIL-01 |
Rappel J-1 réunion — automatique |
Réunion planifiée demain, cron 9h UTC |
Email reçu la veille à 9h UTC |
| EMAIL-02 |
Tester rappel J-1 manuellement |
Réunion dans les 36h |
Email reçu après le curl test |
| EMAIL-03 |
CR réunion — reçu automatiquement après fin |
Réunion terminée, cron toutes les heures |
Email CR reçu dans l'heure suivant la fin |
| EMAIL-04 |
CR réunion — contient les prochains pas |
Réunion avec PP |
PP listés dans le mail |
| EMAIL-05 |
CR réunion — envoyé une seule fois (flag summarySent) |
Réunion terminée |
Pas de doublon même si cron passe plusieurs fois |
| EMAIL-06 |
Invitation nouveau membre — email reçu |
Membre invité |
Email d'invitation reçu |
Commandes de test manuel :
# Rappel J-1
curl -X POST http://localhost:8888/cron.sendMeetingReminders \
-H "Content-Type: application/json" \
-H "x-nhost-webhook-secret: cron-secret-udn" \
-d '{}'
# Compte-rendu
curl -X POST http://localhost:8888/cron.sendMeetingSummaries \
-H "Content-Type: application/json" \
-H "x-nhost-webhook-secret: cron-secret-udn" \
-d '{}'
ASYNC — Gouvernance asynchrone
| N° |
Action |
Prérequis |
Résultat attendu |
| ASYNC-01 |
Soumettre une tension en gouvernance async |
Mode holacratique + asyncGovernance activé |
Mail envoyé aux membres du cercle |
| ASYNC-02 |
Voter 'Valider' sur une tension async |
Email avec lien de vote reçu |
Vote enregistré |
| ASYNC-03 |
Voter 'Objecter' sur une tension async |
Email avec lien de vote reçu |
Objection enregistrée, tension passe en réunion |
| ASYNC-04 |
Cron clôture auto à la deadline |
Tension async sans objection à deadline |
asyncStatus = governance_async_validated |
| ASYNC-05 |
Bouton 'Appliquer les évolutions' visible |
asyncStatus = governance_async_validated |
Bouton visible et actif |
| ASYNC-06 |
Appliquer les évolutions |
Évolutions en attente |
Évolutions appliquées, tension fermée |
ADM — Administration
| N° |
Action |
Prérequis |
Résultat attendu |
| ADM-01 |
Accéder au tableau de bord admin |
Être super-admin |
Page admin accessible avec liste des orgas |
| ADM-02 |
Impersonner un utilisateur |
Être super-admin |
Bandeau orange 'Mode impersonation' affiché |
| ADM-03 |
Modifier le plan d'une orga |
Être super-admin |
Plan mis à jour (vivante/carto) |
| ADM-04 |
Export ISO 9001 Excel |
Être admin orga |
Fichier Excel téléchargé avec 4 onglets |
IMP — Import
| N° |
Action |
Prérequis |
Résultat attendu |
| IMP-01 |
Importer une structure Glassfrog (JSON) |
Fichier JSON Glassfrog valide |
Structure importée dans l'orga |
EXC — Excalidraw
| N° |
Action |
Prérequis |
Résultat attendu |
| EXC-01 |
Créer une fresque collaborative depuis une tension |
addon_excalidraw activé |
Lien Excalidraw créé et ouvert |
| EXC-02 |
Créer une fresque depuis une réunion |
addon_excalidraw activé |
Lien Excalidraw créé |
MEET — Meet UdN
| N° |
Action |
Prérequis |
Résultat attendu |
| MEET-01 |
Lancer une visio Meet depuis une réunion |
addon_meet activé |
Lien Meet généré et ouvert |
NR — Non régression technique
Ces tests sont à lancer après chaque déploiement ou modification technique.
| N° |
Action |
Prérequis |
Résultat attendu |
| NR-01 |
Build frontend sans erreur TypeScript |
Code modifié |
npm run build → 0 erreurs |
| NR-02 |
Backend démarre sans erreur |
Après restart |
Logs OK, port 8888 accessible |
| NR-03 |
Permissions Hasura next_step = org.members |
Après toute modif permissions |
Membres voient les PP de tous les cercles |
| NR-04 |
Un seul prochain pas par tension (contrainte UNIQUE) |
Plusieurs créations PP pour même tension |
Upsert, pas de doublon en BDD |
| NR-05 |
Crons actifs et URL correctes (sans /trpc/) |
Après recréation cron |
URLs = /cron.X dans Hasura metadata |
Vérification crons :
docker exec rolebase-graphql-1 sh -c 'curl -s -X POST http://localhost:8080/v1/metadata \
-H "Content-Type: application/json" \
-H "x-hasura-admin-secret: hasura-admin-secret-prod-rolebase" \
-d "{\"type\":\"export_metadata\",\"args\":{}}"' | \
python3 -c "
import sys, json
data = json.load(sys.stdin)
for c in data.get('cron_triggers', []):
print(c['name'], '|', c['webhook'])
"
Récapitulatif
| Catégorie |
Nb tests |
| Authentification |
4 |
| Organisation |
10 |
| Rôles & Cercles |
8 |
| Membres |
3 |
| Tensions |
10 |
| Projets |
3 |
| Prochains pas |
8 |
| Réunions |
13 |
| Emails |
6 |
| Gouvernance async |
6 |
| Admin |
4 |
| Import |
1 |
| Excalidraw |
2 |
| Meet UdN |
1 |
| Non régression |
5 |
| TOTAL |
84 |
Document généré le 21/05/2026 — RoleBase UdN v12 — Université du Nous