Apparence
Portail
Le portail après connexion (accueil manager /tableau-de-bord) : la navigation latérale, la bascule entre l'espace Manager et Mon espace, la barre du haut, et le cloisonnement qui empêche un compte salarié d'atteindre les écrans d'encadrement.
Prérequis communs : make seed-demo, make seed-establishments et make seed-workforce.
1. Retrouver la navigation manager par défaut
Tickets : — · Rôle : Admin · Prérequis : make seed-demo
Connectez-vous et restez sur le portail.
✅ Résultat attendu : la navigation latérale est celle de l'espace Manager, avec l'entrée Utilisateurs dans le groupe Personnel et Astreinte dans le groupe Activité. Le pied de la barre affiche votre nom et votre rôle.
Couverture automatique : e2e/sidebar.spec.ts → « affiche la navigation manager par défaut ».
2. Basculer vers « Mon espace »
Tickets : — · Rôle : Admin, ou tout rôle d'encadrement · Prérequis : make seed-demo
Depuis le portail, ouvrez le sélecteur d'espace et choisissez Mon espace.
✅ Résultat attendu : la navigation change de contenu — Mon planning apparaît, Utilisateurs disparaît. Le sélecteur affiche désormais Mon espace.
Rebasculez sur Manager.
✅ Résultat attendu : la navigation d'encadrement revient à l'identique.
Couverture automatique : e2e/sidebar.spec.ts → « bascule vers « Mon espace » et change la navigation ».
3. Replier la barre latérale sur bureau
Tickets : — · Rôle : n'importe lequel · Prérequis : make seed-demo
En largeur bureau, cliquez sur le bouton de repli de la barre latérale.
✅ Résultat attendu : la barre se réduit à un rail d'icônes. Les entrées restent atteignables, la zone de contenu s'élargit.
Couverture automatique : e2e/sidebar.spec.ts → « replie la sidebar en rail sur bureau ».
4. Naviguer depuis un téléphone
Tickets : APAJH-290 · Rôle : n'importe lequel · Prérequis : make seed-demo
En 390 × 844, ouvrez le portail.
✅ Résultat attendu : la barre latérale est masquée ; un bouton burger l'ouvre en tiroir.
Regardez la barre du haut.
✅ Résultat attendu : ni sélecteur d'espace, ni avatar. L'écran étant étroit, ces deux commandes vivent dans le tiroir.
Ouvrez le tiroir et regardez son pied.
✅ Résultat attendu : le pied se limite à la puce utilisateur (nom et rôle) — pas de menu déroulant dupliqué.
Le sélecteur Manager / Mon espace se trouve en haut du tiroir pour les comptes d’encadrement. Le téléphone conserve l’espace manager et propose les mêmes destinations ; le changement d’espace reste volontaire.
Pressez la puce utilisateur.
✅ Résultat attendu : le tiroir se referme et Mon profil s'ouvre sur Informations, à l'adresse
/mon-profil/informations.
Couverture automatique : e2e/sidebar.spec.ts → « ouvre le tiroir via le burger sur mobile », « mobile : ni sélecteur de rôle ni avatar dans la topbar », « mobile : le pied du tiroir se limite à la puce utilisateur » et « mobile : presser la puce utilisateur referme le tiroir ». e2e/personal-profile.spec.ts vérifie également l'arrivée sur le dossier personnel.
5. Utiliser les menus de la barre du haut
Tickets : APAJH-228 · Rôle : n'importe lequel · Prérequis : make seed-demo, puis python manage.py send_test_notification i.aubert
Critères d'acceptation du ticket
- La cloche affiche les notifications enregistrées par le backend.
- Lire une notification ou toutes les notifications survit au rechargement.
- Un navigateur autorisé reçoit le push lorsque l'onglet est fermé.
- Un appareil révoqué n'empêche pas les autres appareils de recevoir le push.
En largeur bureau, cliquez sur la cloche.
✅ Résultat attendu : la liste paginée des notifications réelles s'ouvre et un compteur indique le nombre de non-lues.
Cliquez sur Tout marquer comme lu.
✅ Résultat attendu : le compteur disparaît et reste absent après rechargement de la page.
Activez Autoriser les notifications navigateur et acceptez la demande du navigateur.
✅ Résultat attendu : l'appareil reste activé après rechargement. Une notification envoyée par la commande de test apparaît dans la cloche et sous forme de notification système lorsque l'onglet est fermé.
Cliquez sur l'avatar.
✅ Résultat attendu : le menu de compte s'ouvre avec Mon profil et Déconnexion.
Couverture automatique : e2e/topbar-menus.spec.ts → les sept tests du fichier.
6. Ouvrir un écran par son adresse
Tickets : APAJH-208 · Rôle : Admin · Prérequis : make seed-workforce
Cliquez sur Utilisateurs dans la navigation.
✅ Résultat attendu : l'adresse devient
/utilisateurs.Ouvrez une fiche, changez de volet, et copiez l'adresse.
✅ Résultat attendu : chaque volet a sa propre adresse, de la forme
/utilisateurs/<id>/<volet>. Collée dans un nouvel onglet, elle rouvre le même volet.Ouvrez
/utilisateurs/<id>sans volet, puis avec un volet qui n'existe pas.✅ Résultat attendu : les deux retombent sur Informations plutôt que sur une page d'erreur.
Couverture automatique : e2e/portal-routing.spec.ts → « « Utilisateurs » ouvre /utilisateurs », « un onglet de fiche salarié est une adresse à part entière », « une fiche sans onglet, ou avec un onglet inconnu, retombe sur Informations » et « mobile : la fiche salarié reste accessible par son adresse ».
7. Vérifier le cloisonnement d'un compte salarié
Tickets : — · Rôle : Salarié · Prérequis : make seed-workforce
Connectez-vous avec un compte qui n'a que le rôle
Salarié.✅ Résultat attendu : ni sélecteur d'espace, ni navigation manager. Le portail n'offre que Mon espace.
Saisissez
/utilisateursdans la barre d'adresse.✅ Résultat attendu : renvoi sur le portail.
Saisissez l'adresse d'une fiche salarié.
✅ Résultat attendu : renvoi sur le portail, là aussi.
Refaites les étapes 1 à 3 en 390 × 844.
✅ Résultat attendu : même cloisonnement — le tiroir mobile n'expose pas non plus la navigation manager.
Couverture automatique : e2e/portal-routing.spec.ts → les quatre tests du groupe « portail — cloisonnement de l'espace manager ».
8. Lire son rôle sous son nom
Tickets : APAJH-268 · Rôle : Admin, Manager n1, Intérimaire · Prérequis : make seed-demo, make seed-workforce
Critères d'acceptation du ticket
- Le rôle affiché sous l'avatar est celui que porte le compte, et non une valeur déduite de son accès au back-office.
- Il est écrit comme le référentiel l'écrit : Admin, RH n1, RH n2, DA, Manager n1, Manager n2, Salarié, Intérimaire, Service Paie.
- Un compte qui cumule plusieurs rôles affiche le plus encadrant.
- Un compte sans aucun rôle n'affiche que son nom.
Connectez-vous avec
i.aubertet regardez la puce utilisateur, en haut à droite.✅ Résultat attendu : sous « Isabelle Aubert », le libellé Admin.
Cliquez sur la puce pour ouvrir le menu de compte.
✅ Résultat attendu : l'en-tête du menu reprend le même libellé.
Déconnectez-vous, puis connectez-vous avec
l.martins(mot de passedemo1234). Ce compte porte Salarié et Manager n1.✅ Résultat attendu : la puce affiche Manager n1. Le rôle Salarié, que tout le monde porte, n'est jamais celui qui est nommé lorsqu'un autre existe.
Recommencez avec
j.dubois, qui porte Salarié et Intérimaire.✅ Résultat attendu : la puce affiche Intérimaire.
Au back-office, ouvrez Authentification et Autorisation ▸ Rôles et supprimez les deux attributions de
j.dubois. Reconnectez-vous avec ce compte.✅ Résultat attendu : la puce n'affiche que « Julien Dubois » — aucune ligne de rôle, et pas de ligne vide à la place.
Reprenez l'étape 1 en 390 × 844, tiroir ouvert.
✅ Résultat attendu : le même libellé apparaît au pied du tiroir, sous le nom.
Couverture automatique : e2e/sidebar.spec.ts → « nomme le rôle du compte sous son nom » et « un compte sans rôle affiche son nom seul ». L'arbitrage entre les rôles cumulés est couvert côté API par backend/tests/test_roles.py.
9. Accéder à son profil personnel
Tickets : APAJH-290 · Rôle : Salarié, Intérimaire, Manager, RH / Admin · Prérequis : un compte associé à un dossier salarié.
Sur ordinateur, ouvrez le menu de compte puis Mon profil.
✅ Résultat attendu : Mon espace est actif et l'adresse est
/mon-profil/informations. Le dossier est celui du compte connecté, y compris si le compte peut consulter l'annuaire manager.Ouvrez
/mon-profil, puis/mon-profil/inconnuet/mon-profil/compteurs.✅ Résultat attendu : ces adresses ramènent toutes à Informations. Les cinq volets sont décrits dans la recette du profil. Mes compteurs reste une page distincte.
Déconnectez-vous, puis ouvrez
/mon-profil/informations.✅ Résultat attendu : l'écran de connexion est affiché.
Couverture automatique : e2e/personal-profile.spec.ts couvre l'entrée par le menu et la puce mobile, les adresses et l'obligation de connexion.
10. Accéder au back-office depuis le menu utilisateur
Tickets : APAJH-271 · Rôle : Admin, RH n1, RH n2 · Prérequis : compte avec Statut équipe activé dans le back-office
Critères d'acceptation du ticket
- L'entrée Paramètres est renommée Accéder au BO et mène au back-office.
- Elle est accessible aux administrateurs et aux RH, et masquée pour les autres types d'utilisateurs.
Sur ordinateur, connectez-vous avec un compte Admin, RH n1 ou RH n2.
Cliquez sur votre avatar, puis sur Accéder au BO.
✅ Résultat attendu : le back-office s'ouvre dans un nouvel onglet. Le portail reste ouvert sur sa page actuelle. L'adresse utilise le domaine de l'API et se termine par
/admin/.Si aucune session du back-office n'est ouverte, suivez son parcours de connexion et de second facteur. Si une session vérifiée existe déjà, vous retrouvez directement son accueil.
Refaites l'ouverture du lien au clavier avec Entrée.
✅ Résultat attendu : le même nouvel onglet s'ouvre. Mon profil et Déconnexion restent disponibles dans le menu ; Paramètres a disparu.
Couverture automatique : e2e/backoffice-access.spec.ts → visibilité pour les trois rôles, ouverture au clic et au clavier. Le parcours de connexion du back-office est à vérifier sur la stack.
11. Vérifier les limites de l'entrée back-office
Tickets : APAJH-271 · Rôle : tous · Prérequis : comptes avec les différents rôles et statuts d'accès
Ouvrez le menu utilisateur avec un compte DA, Manager n1, Manager n2, Salarié, Intérimaire, Service Paie ou sans rôle métier.
✅ Résultat attendu : Accéder au BO est absent, même si Statut équipe est activé. Mon profil et Déconnexion restent présents.
Recommencez avec un compte Admin, RH n1 ou RH n2 dont Statut équipe est désactivé.
✅ Résultat attendu : Accéder au BO est absent également.
Avec un compte Admin autorisé, passez en 390 × 844 et ouvrez le tiroir mobile.
✅ Résultat attendu : le pied du tiroir garde uniquement le raccourci Mon profil. Aucune entrée Accéder au BO n'est ajoutée sur mobile.
Couverture automatique : e2e/backoffice-access.spec.ts → masquage selon le rôle et le statut, maintien du parcours mobile.
Points d'attention
- Le cloisonnement vérifié ici est celui de l'interface. Il rend les écrans inatteignables, il ne remplace pas le contrôle d'accès de l'API : c'est ce dernier qui fait foi, et il a ses propres tests (
backend/tests/test_roles.py). - Une partie des entrées de navigation (Planning, Absences, Compteurs…) ne mène encore à aucun écran. Leur présence n'est pas un défaut de recette : seules Utilisateurs et la fiche salarié sont livrées.