Skip to main content

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

---

## Comment utiliser ce plan

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

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

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

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

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

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

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

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*

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*

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*

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 :**
> bash > # 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

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

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

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

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

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.

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 :**
> bash > 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*