Apparence
Bibliothèque ▸ Équipes
/equipes — les équipes d'un manager, et l'écran Créer une équipe qui choisit leurs établissements et leurs membres.
Prérequis communs : make seed-all.
Le reste de l'écran n'a pas encore de scénario : ce chapitre commence avec le premier ticket qui l'a touché.
1. Rechercher un salarié sans avoir coché d'établissement
Tickets : APAJH-207 · Rôle : Manager n1 sans restriction d'établissement · Prérequis : make seed-all, deux salariés de même nom de famille dans deux établissements différents
Ouvrez Bibliothèque ▸ Équipes, puis cliquez sur Créer une équipe.
✅ Résultat attendu : le sélecteur Établissement(s) affiche « Sélectionner » : aucun établissement n'est coché.
Tapez le nom de famille commun dans Rechercher un salarié….
✅ Résultat attendu : les deux salariés sont proposés, sans qu'un établissement ait eu à être coché d'abord.
Couverture automatique : e2e/equipes.spec.ts → « sans établissement coché, tout le périmètre d’un manager non restreint ».
2. La recherche reste dans les établissements cochés et dans le périmètre
Tickets : APAJH-285 · Rôle : Manager n1 restreint à quelques établissements · Prérequis : make seed-all, des salariés de même nom de famille dans un établissement du périmètre, dans un autre du périmètre, et dans un établissement hors périmètre
Ouvrez Bibliothèque ▸ Équipes, puis cliquez sur Créer une équipe, et ouvrez le sélecteur Établissement(s).
✅ Résultat attendu : seuls les établissements du périmètre sont proposés ; ils sont cochés par défaut.
Ne laissez coché qu'un seul établissement, puis tapez le nom de famille commun dans Rechercher un salarié….
✅ Résultat attendu : seul le salarié de cet établissement est proposé.
Cochez ce salarié.
✅ Résultat attendu : la liste ne change pas ; aucun autre établissement ne se coche.
Décochez tous les établissements, en gardant la recherche.
✅ Résultat attendu : les salariés des deux établissements du périmètre sont proposés, jamais celui de l'établissement hors périmètre — ni avec Tous les établissements.
Couverture automatique : e2e/equipes.spec.ts → « la recherche se limite aux établissements cochés » · « un manager ne trouve jamais un salarié hors de son périmètre ».
3. Le champ Établissement(s) est obligatoire, et vide il vaut « Tous »
Tickets : APAJH-286 · Rôle : Manager n1 restreint à quelques établissements · Prérequis : make seed-all
Ouvrez Bibliothèque ▸ Équipes, puis cliquez sur Créer une équipe.
✅ Résultat attendu : le libellé Établissement(s) porte l'astérisque rouge des champs obligatoires.
Décochez tous les établissements, nommez l'équipe, puis cliquez sur Enregistrer.
✅ Résultat attendu : l'enregistrement aboutit, sans erreur ; l'équipe est rattachée à tous les établissements du périmètre du manager — et à ceux-là seulement.
Rouvrez l'équipe avec Éditer.
✅ Résultat attendu : le sélecteur Établissement(s) coche les établissements du périmètre, et la liste des membres proposés se limite aux salariés qui y travaillent, en lieu principal ou secondaire.
Un refus de l'enregistrement par le serveur s'affiche désormais à l'écran, au pied du formulaire, avec le message du serveur : le cas n'est plus reproductible à la main depuis que le champ vide vaut « Tous », il reste couvert par le test automatisé.
Couverture automatique : e2e/equipes.spec.ts → « sans établissement coché, l’équipe prend tous ceux du périmètre » · « un refus du serveur s’affiche à l’écran ».
4. La liste des équipes se limite au périmètre
Tickets : APAJH-286 · Rôle : Manager n1 restreint à quelques établissements · Prérequis : make seed-all, une équipe rattachée à un établissement hors périmètre, et une équipe transverse rattachée à un établissement du périmètre et à un autre hors périmètre
Ouvrez Bibliothèque ▸ Équipes.
✅ Résultat attendu : seules les équipes rattachées à au moins un établissement du périmètre sont listées — l'équipe transverse comprise, l'équipe hors périmètre absente.
Ouvrez le filtre Filtrer par établissement.
✅ Résultat attendu : il ne propose que des établissements du périmètre — pas l'établissement hors périmètre de l'équipe transverse.
Couverture automatique : e2e/equipes.spec.ts → « la liste des équipes se limite au périmètre ».
5. Rechercher une équipe et la filtrer par établissement
Tickets : APAJH-283 · Rôle : Manager n1 · Prérequis : make seed-all, au moins deux équipes nommées dans le périmètre, dont deux rattachées au même établissement
Ouvrez Bibliothèque ▸ Équipes, puis le filtre Filtrer par établissement.
✅ Résultat attendu : chaque établissement n'y figure qu'une fois, même rattaché à plusieurs équipes ; un champ Rechercher une équipe… figure à côté du filtre.
Saisissez une partie du nom d'une équipe, en minuscules, entourée d'espaces.
✅ Résultat attendu : seules les équipes dont le nom correspond restent listées ; la casse, les accents et les espaces autour de la saisie sont ignorés. Une équipe sans nom se retrouve par n'importe lequel de ses établissements, pas seulement par le premier qu'affiche son intitulé.
Choisissez en plus un établissement dans Filtrer par établissement.
✅ Résultat attendu : seules les équipes qui satisfont les deux critères restent listées.
Videz la recherche avec la croix du champ.
✅ Résultat attendu : la liste réaffiche les équipes de l'établissement choisi.
Saisissez un texte qui ne correspond à aucun nom d'équipe.
✅ Résultat attendu : le message « Aucune équipe ne correspond à votre recherche. » s'affiche.
Reprenez les étapes 1 à 4 sur un téléphone, puis au clavier seul (Tab pour atteindre les champs, Entrée pour ouvrir le filtre).
✅ Résultat attendu : le filtre et la recherche restent utilisables.
Couverture automatique : e2e/equipes.spec.ts → « la recherche filtre la liste des équipes ».
6. Chaque rang d'encadrement reste dans son périmètre, le Service Paie consulte
Tickets : APAJH-285 · Rôle : un Manager n2 et un DA restreints chacun à un établissement, puis un Service Paie · Prérequis : make seed-all, une équipe rattachée à l'établissement de ces rôles et une autre rattachée à un établissement hors de leur périmètre. Dans le back-office (Rôles), vérifiez que l'attribution de chaque rôle porte bien son établissement : un rôle sans établissement vaut toute l'association.
En Manager n2, ouvrez Utilisateurs, puis Bibliothèque ▸ Équipes.
✅ Résultat attendu : seuls les salariés et les équipes de son établissement sont listés ; le filtre établissement ne propose que lui.
Refaites l'étape 1 en DA.
✅ Résultat attendu : même périmètre que le Manager n2 — celui de son rattachement, et non toute l'association.
En DA, créez une équipe : le champ Établissement(s) ne propose que l'établissement de son rattachement. Enregistrez, puis supprimez-la.
✅ Résultat attendu : l'équipe est créée puis supprimée ; l'équipe hors périmètre n'est jamais proposée.
En DA, supprimez une équipe transverse, rattachée à son établissement et à un établissement hors de son périmètre.
✅ Résultat attendu : la confirmation affiche « Cette équipe est aussi rattachée à un établissement hors de votre périmètre : … » et l'équipe reste listée.
En Service Paie, ouvrez Bibliothèque ▸ Équipes.
✅ Résultat attendu : les équipes de son périmètre sont listées, sans bouton Créer une équipe, Éditer ni corbeille.
Couverture automatique : e2e/equipes.spec.ts → « le service paie consulte les équipes sans pouvoir les modifier » · « un refus de suppression s’affiche dans la confirmation » · tests/test_establishment.py · tests/test_employee.py.
7. Une équipe transverse ne nomme que les établissements du périmètre
Tickets : APAJH-298 · Rôle : Manager n1 restreint à un établissement · Prérequis : make seed-all, une équipe rattachée à l'établissement du manager et à un établissement hors de son périmètre
Ouvrez Bibliothèque ▸ Équipes et repérez l'équipe transverse.
✅ Résultat attendu : sa ligne ne nomme que l'établissement du périmètre, sans « (+N autres) » pour les établissements que le manager ne gère pas.
Ouvrez le filtre Filtrer par établissement.
✅ Résultat attendu : il ne propose que les établissements du périmètre.
Recherchez le nom de l'établissement hors périmètre.
✅ Résultat attendu : l'équipe transverse ne remonte pas par lui (« Aucune équipe ne correspond à votre recherche. » si rien d'autre ne correspond).
Couverture automatique : e2e/equipes.spec.ts → « une équipe transverse ne nomme que les établissements du périmètre ».