Extract screenIds from feature files automatically
- Add screenIds extraction to parse-features.ts based on step patterns - Update ParsedFeature type to include screenIds field - Remove manual screenIds from user story definitions in index.ts - Compute screenIds by looking up parsed features at runtime Feature files are now the single source of truth for screen-to-story linking. Run `bun run features:parse` to update after modifying features. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
+125
-26
@@ -90,7 +90,12 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/user/us-9-visualiser-photo.feature",
|
||||
"rawContent": "# language: fr\n@USER @priority-0\nFonctionnalité: US-9 Visualiser la photo d'un individu\n En tant qu'utilisateur\n Je peux visualiser la photo d'un individu ou ajouter une photo personnelle sur une fiche existante\n Et consulter la liste des inscrits à un atelier\n Afin d'identifier les personnes que j'ai rencontrées dont je n'ai pas noté leur nom\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder au profil pour voir la photo\n Étant donné que je suis sur la page \"mon profil\"\n Alors je vois l'écran \"profile\"\n Et l'écran contient une section \"Photo de profil\"\n\n Scénario: Naviguer vers le profil depuis la liste des participants\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur un participant\n Alors je suis redirigé vers \"profil utilisateur\"\n Et l'écran affiche les informations du profil\n\n Scénario: Consulter la liste des inscrits à un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Alors je peux voir la liste des participants\n\n Scénario: Vérifier les champs de données du profil\n Étant donné que l'écran \"profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n"
|
||||
"rawContent": "# language: fr\n@USER @priority-0\nFonctionnalité: US-9 Visualiser la photo d'un individu\n En tant qu'utilisateur\n Je peux visualiser la photo d'un individu ou ajouter une photo personnelle sur une fiche existante\n Et consulter la liste des inscrits à un atelier\n Afin d'identifier les personnes que j'ai rencontrées dont je n'ai pas noté leur nom\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder au profil pour voir la photo\n Étant donné que je suis sur la page \"mon profil\"\n Alors je vois l'écran \"profile\"\n Et l'écran contient une section \"Photo de profil\"\n\n Scénario: Naviguer vers le profil depuis la liste des participants\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur un participant\n Alors je suis redirigé vers \"profil utilisateur\"\n Et l'écran affiche les informations du profil\n\n Scénario: Consulter la liste des inscrits à un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Alors je peux voir la liste des participants\n\n Scénario: Vérifier les champs de données du profil\n Étant donné que l'écran \"profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n",
|
||||
"screenIds": [
|
||||
"event-detail",
|
||||
"profile",
|
||||
"user-profile"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-13",
|
||||
@@ -209,7 +214,11 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/event/us-13-creer-evenement.feature",
|
||||
"rawContent": "# language: fr\n@EVENT @priority-1\nFonctionnalité: US-13 Créer/Modifier/Supprimer un événement\n En tant qu'utilisateur\n Je peux créer/modifier/supprimer un événement\n En choisissant les dates, horaires, lieu et thématique\n Afin de créer/présenter le contenu de cet événement et le catégoriser\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à la création d'événement\n Étant donné que je suis sur la page \"accueil\"\n Quand je navigue vers \"créer un événement\"\n Alors je vois l'écran \"create-event\"\n\n Scénario: Vérifier les champs obligatoires du formulaire\n Étant donné que l'écran \"create-event\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Nom de l'événement |\n | Date |\n | Heure de début |\n | Lieu |\n | Thématique |\n\n Scénario: Remplir le formulaire de création d'événement\n Étant donné que je suis sur la page \"créer un événement\"\n Quand je remplis le champ \"Nom de l'événement\" avec \"Mon événement\"\n Et je remplis le champ \"Date\" avec \"2025-02-15\"\n Et je remplis le champ \"Heure de début\" avec \"14:00\"\n Et je remplis le champ \"Lieu\" avec \"Lyon\"\n Et je remplis le champ \"Thématique\" avec \"Technologie\"\n Alors le champ \"Nom de l'événement\" affiche \"Mon événement\"\n Et le champ \"Lieu\" affiche \"Lyon\"\n\n Scénario: Vérifier la présence du bouton de création\n Étant donné que je suis sur la page \"créer un événement\"\n Alors l'écran contient une section \"Créer l'événement\"\n\n Scénario: Pouvoir annuler la création d'événement\n Étant donné que je suis sur la page \"créer un événement\"\n Alors je peux annuler et revenir à l'écran précédent\n"
|
||||
"rawContent": "# language: fr\n@EVENT @priority-1\nFonctionnalité: US-13 Créer/Modifier/Supprimer un événement\n En tant qu'utilisateur\n Je peux créer/modifier/supprimer un événement\n En choisissant les dates, horaires, lieu et thématique\n Afin de créer/présenter le contenu de cet événement et le catégoriser\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à la création d'événement\n Étant donné que je suis sur la page \"accueil\"\n Quand je navigue vers \"créer un événement\"\n Alors je vois l'écran \"create-event\"\n\n Scénario: Vérifier les champs obligatoires du formulaire\n Étant donné que l'écran \"create-event\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Nom de l'événement |\n | Date |\n | Heure de début |\n | Lieu |\n | Thématique |\n\n Scénario: Remplir le formulaire de création d'événement\n Étant donné que je suis sur la page \"créer un événement\"\n Quand je remplis le champ \"Nom de l'événement\" avec \"Mon événement\"\n Et je remplis le champ \"Date\" avec \"2025-02-15\"\n Et je remplis le champ \"Heure de début\" avec \"14:00\"\n Et je remplis le champ \"Lieu\" avec \"Lyon\"\n Et je remplis le champ \"Thématique\" avec \"Technologie\"\n Alors le champ \"Nom de l'événement\" affiche \"Mon événement\"\n Et le champ \"Lieu\" affiche \"Lyon\"\n\n Scénario: Vérifier la présence du bouton de création\n Étant donné que je suis sur la page \"créer un événement\"\n Alors l'écran contient une section \"Créer l'événement\"\n\n Scénario: Pouvoir annuler la création d'événement\n Étant donné que je suis sur la page \"créer un événement\"\n Alors je peux annuler et revenir à l'écran précédent\n",
|
||||
"screenIds": [
|
||||
"create-event",
|
||||
"home"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-3",
|
||||
@@ -290,7 +299,11 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/event/us-3-visualiser-evenement-termine.feature",
|
||||
"rawContent": "# language: fr\n@EVENT @priority-1\nFonctionnalité: US-3 Visualiser un événement terminé\n En tant qu'utilisateur\n Je peux visualiser un événement terminé et consulter la description de l'événement\n Afin de voir les personnes qui ont participé à cet événement\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder aux détails d'un événement terminé\n Étant donné que je suis sur la page \"accueil\"\n Quand je clique sur un événement\n Alors je vois l'écran \"event-detail\"\n\n Scénario: Voir la description de l'événement\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran affiche les informations de l'événement\n\n Scénario: Voir la liste des participants\n Étant donné que je suis sur la page \"détail événement\"\n Alors je peux voir la liste des participants\n\n Scénario: Vérifier les données affichées\n Étant donné que l'écran \"event-detail\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Titre |\n | Date |\n | Lieu |\n | Description |\n | Liste des participants |\n"
|
||||
"rawContent": "# language: fr\n@EVENT @priority-1\nFonctionnalité: US-3 Visualiser un événement terminé\n En tant qu'utilisateur\n Je peux visualiser un événement terminé et consulter la description de l'événement\n Afin de voir les personnes qui ont participé à cet événement\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder aux détails d'un événement terminé\n Étant donné que je suis sur la page \"accueil\"\n Quand je clique sur un événement\n Alors je vois l'écran \"event-detail\"\n\n Scénario: Voir la description de l'événement\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran affiche les informations de l'événement\n\n Scénario: Voir la liste des participants\n Étant donné que je suis sur la page \"détail événement\"\n Alors je peux voir la liste des participants\n\n Scénario: Vérifier les données affichées\n Étant donné que l'écran \"event-detail\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Titre |\n | Date |\n | Lieu |\n | Description |\n | Liste des participants |\n",
|
||||
"screenIds": [
|
||||
"event-detail",
|
||||
"home"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-7",
|
||||
@@ -389,7 +402,11 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/event/us-7-inscription-evenement.feature",
|
||||
"rawContent": "# language: fr\n@EVENT @priority-1\nFonctionnalité: US-7 M'inscrire/me désinscrire à un événement\n En tant qu'utilisateur\n Je peux m'inscrire/me désinscrire à un événement\n Après avoir consulté la description de l'événement, les dates et le lieu\n S'il existe déjà dans le système ou en le retrouvant dans une base existante\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Consulter un événement avant inscription\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran affiche les informations de l'événement\n\n Scénario: S'inscrire à un événement\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"S'inscrire\"\n Alors je peux m'inscrire à l'événement\n\n Scénario: Se désinscrire d'un événement\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Se désinscrire\"\n Alors je peux me désinscrire de l'événement\n\n Scénario: Rechercher un événement existant\n Étant donné que je suis sur la page \"découvrir\"\n Alors je peux voir la liste des événements\n\n Scénario: Vérifier les données de l'écran\n Étant donné que l'écran \"event-detail\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Titre |\n | Date |\n | Lieu |\n | Description |\n | Liste des participants |\n"
|
||||
"rawContent": "# language: fr\n@EVENT @priority-1\nFonctionnalité: US-7 M'inscrire/me désinscrire à un événement\n En tant qu'utilisateur\n Je peux m'inscrire/me désinscrire à un événement\n Après avoir consulté la description de l'événement, les dates et le lieu\n S'il existe déjà dans le système ou en le retrouvant dans une base existante\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Consulter un événement avant inscription\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran affiche les informations de l'événement\n\n Scénario: S'inscrire à un événement\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"S'inscrire\"\n Alors je peux m'inscrire à l'événement\n\n Scénario: Se désinscrire d'un événement\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Se désinscrire\"\n Alors je peux me désinscrire de l'événement\n\n Scénario: Rechercher un événement existant\n Étant donné que je suis sur la page \"découvrir\"\n Alors je peux voir la liste des événements\n\n Scénario: Vérifier les données de l'écran\n Étant donné que l'écran \"event-detail\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Titre |\n | Date |\n | Lieu |\n | Description |\n | Liste des participants |\n",
|
||||
"screenIds": [
|
||||
"event-detail",
|
||||
"events"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-16",
|
||||
@@ -506,7 +523,11 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/meeting/us-16-point-rencontre.feature",
|
||||
"rawContent": "# language: fr\n@MEETING @priority-1\nFonctionnalité: US-16 Indiquer un ou plusieurs points de rencontre\n En tant qu'utilisateur\n Je peux indiquer un ou plusieurs points de rencontre\n En précisant le lieu et l'heure de cette rencontre\n Afin de croiser et faire connaissance d'autres participants\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder aux points de rencontre\n Étant donné que je suis sur la page \"détail événement\"\n Quand je navigue vers \"points de rencontre\"\n Alors je vois l'écran \"meeting-points\"\n\n Scénario: Créer un point de rencontre\n Étant donné que je suis sur la page \"points de rencontre\"\n Quand je clique sur \"Ajouter un point de rencontre\"\n Alors l'écran contient une section \"Nouveau point de rencontre\"\n\n Scénario: Définir le lieu de rencontre\n Étant donné que je suis sur la page \"points de rencontre\"\n Alors le champ \"Lieu de rencontre\" est présent\n\n Scénario: Définir l'heure de rencontre\n Étant donné que je suis sur la page \"points de rencontre\"\n Alors le champ \"Heure\" est présent\n\n Scénario: Échanger des liens de contact\n Étant donné que je suis sur la page \"points de rencontre\"\n Alors l'écran contient une section \"Partage de contact\"\n Et je peux voir le QR code\n\n Scénario: Vérifier les données requises\n Étant donné que l'écran \"meeting-points\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Lieu de rencontre |\n | Heure |\n"
|
||||
"rawContent": "# language: fr\n@MEETING @priority-1\nFonctionnalité: US-16 Indiquer un ou plusieurs points de rencontre\n En tant qu'utilisateur\n Je peux indiquer un ou plusieurs points de rencontre\n En précisant le lieu et l'heure de cette rencontre\n Afin de croiser et faire connaissance d'autres participants\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder aux points de rencontre\n Étant donné que je suis sur la page \"détail événement\"\n Quand je navigue vers \"points de rencontre\"\n Alors je vois l'écran \"meeting-points\"\n\n Scénario: Créer un point de rencontre\n Étant donné que je suis sur la page \"points de rencontre\"\n Quand je clique sur \"Ajouter un point de rencontre\"\n Alors l'écran contient une section \"Nouveau point de rencontre\"\n\n Scénario: Définir le lieu de rencontre\n Étant donné que je suis sur la page \"points de rencontre\"\n Alors le champ \"Lieu de rencontre\" est présent\n\n Scénario: Définir l'heure de rencontre\n Étant donné que je suis sur la page \"points de rencontre\"\n Alors le champ \"Heure\" est présent\n\n Scénario: Échanger des liens de contact\n Étant donné que je suis sur la page \"points de rencontre\"\n Alors l'écran contient une section \"Partage de contact\"\n Et je peux voir le QR code\n\n Scénario: Vérifier les données requises\n Étant donné que l'écran \"meeting-points\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Lieu de rencontre |\n | Heure |\n",
|
||||
"screenIds": [
|
||||
"event-detail",
|
||||
"meeting-points"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-10",
|
||||
@@ -601,7 +622,11 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/user/us-10-profil-participant.feature",
|
||||
"rawContent": "# language: fr\n@USER @priority-1\nFonctionnalité: US-10 Visualiser la fiche/le profil d'un participant\n En tant qu'utilisateur\n Je peux sélectionner un individu dans la liste des inscrits à un événement/atelier\n Afin de voir les événements auxquels la personne a participé et voir un formulaire de contact\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder au profil d'un participant\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur un participant\n Alors je vois l'écran \"user-profile\"\n\n Scénario: Voir les événements du participant\n Étant donné que je suis sur la page \"profil utilisateur\"\n Alors je peux voir les événements auxquels l'utilisateur a participé\n\n Scénario: Voir le formulaire de contact\n Étant donné que je suis sur la page \"profil utilisateur\"\n Alors je peux contacter l'utilisateur\n\n Scénario: Vérifier les informations du profil\n Étant donné que l'écran \"user-profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n\n Scénario: Voir les détails du profil utilisateur\n Étant donné que je suis sur la page \"profil utilisateur\"\n Alors l'écran affiche les informations du profil\n"
|
||||
"rawContent": "# language: fr\n@USER @priority-1\nFonctionnalité: US-10 Visualiser la fiche/le profil d'un participant\n En tant qu'utilisateur\n Je peux sélectionner un individu dans la liste des inscrits à un événement/atelier\n Afin de voir les événements auxquels la personne a participé et voir un formulaire de contact\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder au profil d'un participant\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur un participant\n Alors je vois l'écran \"user-profile\"\n\n Scénario: Voir les événements du participant\n Étant donné que je suis sur la page \"profil utilisateur\"\n Alors je peux voir les événements auxquels l'utilisateur a participé\n\n Scénario: Voir le formulaire de contact\n Étant donné que je suis sur la page \"profil utilisateur\"\n Alors je peux contacter l'utilisateur\n\n Scénario: Vérifier les informations du profil\n Étant donné que l'écran \"user-profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n\n Scénario: Voir les détails du profil utilisateur\n Étant donné que je suis sur la page \"profil utilisateur\"\n Alors l'écran affiche les informations du profil\n",
|
||||
"screenIds": [
|
||||
"event-detail",
|
||||
"user-profile"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-15",
|
||||
@@ -682,7 +707,11 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/user/us-15-visualiser-inscrits.feature",
|
||||
"rawContent": "# language: fr\n@USER @priority-1\nFonctionnalité: US-15 Visualiser les inscrits à un atelier/événement\n En tant qu'utilisateur\n Je peux visualiser les inscrits à un atelier/événement\n En sélectionnant l'atelier/l'événement désiré dans la liste\n Afin de consulter la liste des inscrits triée par ordre alphabétique\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à la liste des inscrits\n Étant donné que je suis sur la page \"détail événement\"\n Alors je peux voir la liste des participants\n\n Scénario: Voir la liste triée\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Participants\"\n\n Scénario: Cliquer sur un inscrit pour voir son profil\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur un participant\n Alors je vois l'écran \"user-profile\"\n\n Scénario: Vérifier les données de l'écran\n Étant donné que l'écran \"event-detail\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Titre |\n | Date |\n | Liste des participants |\n"
|
||||
"rawContent": "# language: fr\n@USER @priority-1\nFonctionnalité: US-15 Visualiser les inscrits à un atelier/événement\n En tant qu'utilisateur\n Je peux visualiser les inscrits à un atelier/événement\n En sélectionnant l'atelier/l'événement désiré dans la liste\n Afin de consulter la liste des inscrits triée par ordre alphabétique\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à la liste des inscrits\n Étant donné que je suis sur la page \"détail événement\"\n Alors je peux voir la liste des participants\n\n Scénario: Voir la liste triée\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Participants\"\n\n Scénario: Cliquer sur un inscrit pour voir son profil\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur un participant\n Alors je vois l'écran \"user-profile\"\n\n Scénario: Vérifier les données de l'écran\n Étant donné que l'écran \"event-detail\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Titre |\n | Date |\n | Liste des participants |\n",
|
||||
"screenIds": [
|
||||
"event-detail",
|
||||
"user-profile"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-23",
|
||||
@@ -777,7 +806,11 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/user/us-23-connexion-utilisateurs.feature",
|
||||
"rawContent": "# language: fr\n@USER @priority-1\nFonctionnalité: US-23 Me connecter avec d'autres utilisateurs\n En tant qu'utilisateur\n Je peux me connecter avec d'autres utilisateurs\n En partageant mon QR code ou mon lien de contact\n Afin d'étendre mon réseau\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder au partage depuis le profil\n Étant donné que je suis sur la page \"mon profil\"\n Alors l'écran contient une section \"Partager\"\n\n Scénario: Voir le QR code\n Étant donné que je suis sur la page \"mon profil\"\n Alors je peux voir le QR code\n\n Scénario: Voir le lien de partage\n Étant donné que je suis sur la page \"mon profil\"\n Alors je peux voir le lien de partage\n\n Scénario: Accéder à l'écran de partage dédié\n Étant donné que je suis sur la page \"mon profil\"\n Quand je navigue vers \"partage de profil\"\n Alors je vois l'écran \"share-profile\"\n\n Scénario: Vérifier les données du profil\n Étant donné que l'écran \"profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n"
|
||||
"rawContent": "# language: fr\n@USER @priority-1\nFonctionnalité: US-23 Me connecter avec d'autres utilisateurs\n En tant qu'utilisateur\n Je peux me connecter avec d'autres utilisateurs\n En partageant mon QR code ou mon lien de contact\n Afin d'étendre mon réseau\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder au partage depuis le profil\n Étant donné que je suis sur la page \"mon profil\"\n Alors l'écran contient une section \"Partager\"\n\n Scénario: Voir le QR code\n Étant donné que je suis sur la page \"mon profil\"\n Alors je peux voir le QR code\n\n Scénario: Voir le lien de partage\n Étant donné que je suis sur la page \"mon profil\"\n Alors je peux voir le lien de partage\n\n Scénario: Accéder à l'écran de partage dédié\n Étant donné que je suis sur la page \"mon profil\"\n Quand je navigue vers \"partage de profil\"\n Alors je vois l'écran \"share-profile\"\n\n Scénario: Vérifier les données du profil\n Étant donné que l'écran \"profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n",
|
||||
"screenIds": [
|
||||
"profile",
|
||||
"share-profile"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-20",
|
||||
@@ -880,7 +913,13 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/user/us-20-profil-reseau.feature",
|
||||
"rawContent": "# language: fr\n@USER @priority-1\nFonctionnalité: US-20 Voir le profil des personnes faisant partie de mon réseau\n En tant qu'utilisateur\n Je peux voir le profil des personnes faisant partie de mon réseau\n Ainsi que le profil des personnes publiques\n Et consulter la description de l'événement afin de savoir si je veux participer\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à mon profil\n Étant donné que je suis sur la page \"accueil\"\n Quand je navigue vers \"mon profil\"\n Alors je vois l'écran \"profile\"\n\n Scénario: Voir mon réseau\n Étant donné que je suis sur la page \"mon profil\"\n Alors l'écran contient une section \"Mon réseau\"\n\n Scénario: Voir un profil de mon réseau\n Étant donné que je suis sur la page \"mon profil\"\n Quand je clique sur un participant\n Alors je vois l'écran \"user-profile\"\n\n Scénario: Consulter un événement depuis un profil\n Étant donné que je suis sur la page \"profil utilisateur\"\n Quand je clique sur un événement\n Alors je vois l'écran \"event-detail\"\n\n Scénario: Vérifier les données du profil\n Étant donné que l'écran \"profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n"
|
||||
"rawContent": "# language: fr\n@USER @priority-1\nFonctionnalité: US-20 Voir le profil des personnes faisant partie de mon réseau\n En tant qu'utilisateur\n Je peux voir le profil des personnes faisant partie de mon réseau\n Ainsi que le profil des personnes publiques\n Et consulter la description de l'événement afin de savoir si je veux participer\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à mon profil\n Étant donné que je suis sur la page \"accueil\"\n Quand je navigue vers \"mon profil\"\n Alors je vois l'écran \"profile\"\n\n Scénario: Voir mon réseau\n Étant donné que je suis sur la page \"mon profil\"\n Alors l'écran contient une section \"Mon réseau\"\n\n Scénario: Voir un profil de mon réseau\n Étant donné que je suis sur la page \"mon profil\"\n Quand je clique sur un participant\n Alors je vois l'écran \"user-profile\"\n\n Scénario: Consulter un événement depuis un profil\n Étant donné que je suis sur la page \"profil utilisateur\"\n Quand je clique sur un événement\n Alors je vois l'écran \"event-detail\"\n\n Scénario: Vérifier les données du profil\n Étant donné que l'écran \"profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n",
|
||||
"screenIds": [
|
||||
"event-detail",
|
||||
"home",
|
||||
"profile",
|
||||
"user-profile"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-19",
|
||||
@@ -971,7 +1010,10 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/notif/us-19-recapitulatif.feature",
|
||||
"rawContent": "# language: fr\n# Note: US-19 concerne les récapitulatifs par email - non testable via écrans\n# Les scénarios ci-dessous testent l'affichage sur l'écran d'accueil (aspect UI)\n@NOTIF @priority-2\nFonctionnalité: US-19 Recevoir un récapitulatif des prochaines rencontres\n En tant qu'utilisateur\n Je peux recevoir un récapitulatif des prochaines rencontres\n En réceptionnant une liste des événements auxquels je suis inscrit ou qui sont proches de chez moi\n Afin d'établir un programme des événements auxquels je participe par période\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Voir les événements à venir sur l'accueil\n Étant donné que je suis sur la page \"accueil\"\n Alors l'écran contient une section \"Événements à venir\"\n\n @pending\n Scénario: Voir le récapitulatif par période\n Étant donné que je suis sur la page \"accueil\"\n Alors je peux filtrer les événements par période\n\n @pending\n Scénario: Voir les événements proches géographiquement\n Étant donné que je suis sur la page \"accueil\"\n Alors l'écran contient une section \"Près de chez moi\"\n\n @pending\n Scénario: Voir mes inscriptions\n Étant donné que je suis sur la page \"accueil\"\n Alors l'écran contient une section \"Mes inscriptions\"\n\n @pending\n Scénario: Vérifier les données de l'accueil\n Étant donné que l'écran \"home\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Événements à venir |\n | Navigation |\n"
|
||||
"rawContent": "# language: fr\n# Note: US-19 concerne les récapitulatifs par email - non testable via écrans\n# Les scénarios ci-dessous testent l'affichage sur l'écran d'accueil (aspect UI)\n@NOTIF @priority-2\nFonctionnalité: US-19 Recevoir un récapitulatif des prochaines rencontres\n En tant qu'utilisateur\n Je peux recevoir un récapitulatif des prochaines rencontres\n En réceptionnant une liste des événements auxquels je suis inscrit ou qui sont proches de chez moi\n Afin d'établir un programme des événements auxquels je participe par période\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Voir les événements à venir sur l'accueil\n Étant donné que je suis sur la page \"accueil\"\n Alors l'écran contient une section \"Événements à venir\"\n\n @pending\n Scénario: Voir le récapitulatif par période\n Étant donné que je suis sur la page \"accueil\"\n Alors je peux filtrer les événements par période\n\n @pending\n Scénario: Voir les événements proches géographiquement\n Étant donné que je suis sur la page \"accueil\"\n Alors l'écran contient une section \"Près de chez moi\"\n\n @pending\n Scénario: Voir mes inscriptions\n Étant donné que je suis sur la page \"accueil\"\n Alors l'écran contient une section \"Mes inscriptions\"\n\n @pending\n Scénario: Vérifier les données de l'accueil\n Étant donné que l'écran \"home\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Événements à venir |\n | Navigation |\n",
|
||||
"screenIds": [
|
||||
"home"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-17",
|
||||
@@ -1078,7 +1120,10 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/notif/us-17-informer-utilisateurs.feature",
|
||||
"rawContent": "# language: fr\n# Note: US-17 concerne les notifications par email - non testable via écrans\n@NOTIF @priority-2\nFonctionnalité: US-17 Informer automatiquement d'autres utilisateurs\n En tant qu'utilisateur\n Je peux informer automatiquement d'autres utilisateurs de ma participation à un événement\n En utilisant un système de notifications pour transmettre le lien de l'événement\n Afin d'informer les utilisateurs proches, intéressés par la thématique, ou mes abonnés\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n @pending\n Scénario: Partager un événement auquel je participe\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Partager\"\n Alors l'écran contient une section \"Options de partage\"\n\n @pending\n Scénario: Informer les utilisateurs à proximité\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Notifier à proximité\"\n Alors l'écran contient une section \"Rayon de notification\"\n\n @pending\n Scénario: Informer les utilisateurs par thématique\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Notifier par thématique\"\n Alors l'écran contient une section \"Thématiques\"\n\n @pending\n Scénario: Informer mes abonnés\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Notifier mes abonnés\"\n Alors l'écran contient une section \"Mes abonnés\"\n\n @pending\n Scénario: Combiner les options de notification\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Options de notification\"\n"
|
||||
"rawContent": "# language: fr\n# Note: US-17 concerne les notifications par email - non testable via écrans\n@NOTIF @priority-2\nFonctionnalité: US-17 Informer automatiquement d'autres utilisateurs\n En tant qu'utilisateur\n Je peux informer automatiquement d'autres utilisateurs de ma participation à un événement\n En utilisant un système de notifications pour transmettre le lien de l'événement\n Afin d'informer les utilisateurs proches, intéressés par la thématique, ou mes abonnés\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n @pending\n Scénario: Partager un événement auquel je participe\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Partager\"\n Alors l'écran contient une section \"Options de partage\"\n\n @pending\n Scénario: Informer les utilisateurs à proximité\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Notifier à proximité\"\n Alors l'écran contient une section \"Rayon de notification\"\n\n @pending\n Scénario: Informer les utilisateurs par thématique\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Notifier par thématique\"\n Alors l'écran contient une section \"Thématiques\"\n\n @pending\n Scénario: Informer mes abonnés\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Notifier mes abonnés\"\n Alors l'écran contient une section \"Mes abonnés\"\n\n @pending\n Scénario: Combiner les options de notification\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Options de notification\"\n",
|
||||
"screenIds": [
|
||||
"event-detail"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-18",
|
||||
@@ -1177,7 +1222,12 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/notif/us-18-nouveaux-participants.feature",
|
||||
"rawContent": "# language: fr\n@NOTIF @priority-2\nFonctionnalité: US-18 Être informé lorsque de nouveaux participants s'inscrivent\n En tant qu'utilisateur\n Je peux être informé lorsque de nouveaux participants s'inscrivent à un événement auquel je suis inscrit\n En utilisant un système de notifications\n Afin de savoir qui participe à un événement\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Configurer les notifications de nouveaux participants\n Étant donné que je suis sur la page \"paramètres\"\n Alors l'écran contient une section \"Notifications\"\n\n Scénario: Activer les notifications pour un événement\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Activer les notifications\"\n Alors l'écran contient une section \"Notifications activées\"\n\n Scénario: Filtrer les notifications par réseau\n Étant donné que je suis sur la page \"paramètres\"\n Quand je clique sur \"Mon réseau uniquement\"\n Alors l'écran contient une section \"Filtre réseau\"\n\n Scénario: Voir les nouveaux participants sur l'accueil\n Étant donné que je suis sur la page \"accueil\"\n Alors l'écran contient une section \"Nouveaux participants\"\n\n Scénario: Vérifier les données des paramètres\n Étant donné que l'écran \"settings\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Notifications |\n | Confidentialité |\n | Rayon de notification |\n"
|
||||
"rawContent": "# language: fr\n@NOTIF @priority-2\nFonctionnalité: US-18 Être informé lorsque de nouveaux participants s'inscrivent\n En tant qu'utilisateur\n Je peux être informé lorsque de nouveaux participants s'inscrivent à un événement auquel je suis inscrit\n En utilisant un système de notifications\n Afin de savoir qui participe à un événement\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Configurer les notifications de nouveaux participants\n Étant donné que je suis sur la page \"paramètres\"\n Alors l'écran contient une section \"Notifications\"\n\n Scénario: Activer les notifications pour un événement\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Activer les notifications\"\n Alors l'écran contient une section \"Notifications activées\"\n\n Scénario: Filtrer les notifications par réseau\n Étant donné que je suis sur la page \"paramètres\"\n Quand je clique sur \"Mon réseau uniquement\"\n Alors l'écran contient une section \"Filtre réseau\"\n\n Scénario: Voir les nouveaux participants sur l'accueil\n Étant donné que je suis sur la page \"accueil\"\n Alors l'écran contient une section \"Nouveaux participants\"\n\n Scénario: Vérifier les données des paramètres\n Étant donné que l'écran \"settings\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Notifications |\n | Confidentialité |\n | Rayon de notification |\n",
|
||||
"screenIds": [
|
||||
"event-detail",
|
||||
"home",
|
||||
"settings"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-12",
|
||||
@@ -1286,7 +1336,12 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/user/us-12-carte-evenements.feature",
|
||||
"rawContent": "# language: fr\n@USER @priority-2\nFonctionnalité: US-12 Consulter la carte/tableau des événements\n En tant qu'utilisateur\n Je peux consulter la carte/tableau des événements auxquels j'ai participé\n En filtrant les événements par dates ou par personne\n Afin d'avoir une vue consolidée des événements et lieux de rencontre\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à la liste des événements depuis le profil\n Étant donné que je suis sur la page \"mon profil\"\n Alors je peux voir la liste des événements\n\n Scénario: Accéder à la liste des événements depuis découvrir\n Étant donné que je suis sur la page \"découvrir\"\n Alors je peux voir la liste des événements\n\n Scénario: Filtrer par date\n Étant donné que je suis sur la page \"découvrir\"\n Quand je clique sur \"Filtrer par date\"\n Alors l'écran contient une section \"Filtre par date\"\n\n Scénario: Filtrer par personne\n Étant donné que je suis sur la page \"profil utilisateur\"\n Alors je peux voir les événements auxquels l'utilisateur a participé\n\n Scénario: Vérifier les données de l'écran événements\n Étant donné que l'écran \"events\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Liste des événements |\n | Filtre par date |\n\n Scénario: Vérifier les données de l'écran profil\n Étant donné que l'écran \"profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n"
|
||||
"rawContent": "# language: fr\n@USER @priority-2\nFonctionnalité: US-12 Consulter la carte/tableau des événements\n En tant qu'utilisateur\n Je peux consulter la carte/tableau des événements auxquels j'ai participé\n En filtrant les événements par dates ou par personne\n Afin d'avoir une vue consolidée des événements et lieux de rencontre\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à la liste des événements depuis le profil\n Étant donné que je suis sur la page \"mon profil\"\n Alors je peux voir la liste des événements\n\n Scénario: Accéder à la liste des événements depuis découvrir\n Étant donné que je suis sur la page \"découvrir\"\n Alors je peux voir la liste des événements\n\n Scénario: Filtrer par date\n Étant donné que je suis sur la page \"découvrir\"\n Quand je clique sur \"Filtrer par date\"\n Alors l'écran contient une section \"Filtre par date\"\n\n Scénario: Filtrer par personne\n Étant donné que je suis sur la page \"profil utilisateur\"\n Alors je peux voir les événements auxquels l'utilisateur a participé\n\n Scénario: Vérifier les données de l'écran événements\n Étant donné que l'écran \"events\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Liste des événements |\n | Filtre par date |\n\n Scénario: Vérifier les données de l'écran profil\n Étant donné que l'écran \"profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n",
|
||||
"screenIds": [
|
||||
"events",
|
||||
"profile",
|
||||
"user-profile"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-25",
|
||||
@@ -1363,7 +1418,10 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/user/us-25-notification-evenements.feature",
|
||||
"rawContent": "# language: fr\n@USER @priority-2\nFonctionnalité: US-25 Être averti des événements susceptibles de m'intéresser\n En tant qu'utilisateur\n Je peux être notifié lorsqu'un nouvel événement est ajouté près de chez moi\n Et/ou avec une thématique qui m'intéresse\n En configurant mes notifications\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder aux paramètres de notification\n Étant donné que je suis sur la page \"paramètres\"\n Alors l'écran contient une section \"Notifications\"\n\n Scénario: Configurer le rayon de notification\n Étant donné que je suis sur la page \"paramètres\"\n Alors je peux définir mon rayon de notification\n\n Scénario: Configurer les thématiques d'intérêt\n Étant donné que je suis sur la page \"paramètres\"\n Alors je peux définir mes thématiques d'intérêt\n\n Scénario: Vérifier les données des paramètres\n Étant donné que l'écran \"settings\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Notifications |\n | Confidentialité |\n | Rayon de notification |\n"
|
||||
"rawContent": "# language: fr\n@USER @priority-2\nFonctionnalité: US-25 Être averti des événements susceptibles de m'intéresser\n En tant qu'utilisateur\n Je peux être notifié lorsqu'un nouvel événement est ajouté près de chez moi\n Et/ou avec une thématique qui m'intéresse\n En configurant mes notifications\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder aux paramètres de notification\n Étant donné que je suis sur la page \"paramètres\"\n Alors l'écran contient une section \"Notifications\"\n\n Scénario: Configurer le rayon de notification\n Étant donné que je suis sur la page \"paramètres\"\n Alors je peux définir mon rayon de notification\n\n Scénario: Configurer les thématiques d'intérêt\n Étant donné que je suis sur la page \"paramètres\"\n Alors je peux définir mes thématiques d'intérêt\n\n Scénario: Vérifier les données des paramètres\n Étant donné que l'écran \"settings\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Notifications |\n | Confidentialité |\n | Rayon de notification |\n",
|
||||
"screenIds": [
|
||||
"settings"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-26",
|
||||
@@ -1444,7 +1502,10 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/user/us-26-portee-evenement.feature",
|
||||
"rawContent": "# language: fr\n@USER @priority-2\nFonctionnalité: US-26 Définir la portée d'un événement\n En tant qu'utilisateur\n Je peux créer/présenter le contenu d'un événement et le catégoriser par type/thématique\n En indiquant son rayon d'intérêt en kilomètres\n Afin de m'assurer que les utilisateurs qui habitent trop loin ne reçoivent pas de notification\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à la création d'événement\n Étant donné que je suis sur la page \"créer un événement\"\n Alors l'écran contient une section \"Portée de l'événement\"\n\n Scénario: Définir le rayon d'intérêt\n Étant donné que je suis sur la page \"créer un événement\"\n Quand je clique sur \"Définir la portée\"\n Alors l'écran contient une section \"Rayon en kilomètres\"\n\n Scénario: Choisir une thématique\n Étant donné que je suis sur la page \"créer un événement\"\n Alors l'écran contient une section \"Thématique\"\n\n Scénario: Vérifier les champs obligatoires\n Étant donné que l'écran \"create-event\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Nom de l'événement |\n | Date |\n | Heure de début |\n | Lieu |\n | Thématique |\n"
|
||||
"rawContent": "# language: fr\n@USER @priority-2\nFonctionnalité: US-26 Définir la portée d'un événement\n En tant qu'utilisateur\n Je peux créer/présenter le contenu d'un événement et le catégoriser par type/thématique\n En indiquant son rayon d'intérêt en kilomètres\n Afin de m'assurer que les utilisateurs qui habitent trop loin ne reçoivent pas de notification\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à la création d'événement\n Étant donné que je suis sur la page \"créer un événement\"\n Alors l'écran contient une section \"Portée de l'événement\"\n\n Scénario: Définir le rayon d'intérêt\n Étant donné que je suis sur la page \"créer un événement\"\n Quand je clique sur \"Définir la portée\"\n Alors l'écran contient une section \"Rayon en kilomètres\"\n\n Scénario: Choisir une thématique\n Étant donné que je suis sur la page \"créer un événement\"\n Alors l'écran contient une section \"Thématique\"\n\n Scénario: Vérifier les champs obligatoires\n Étant donné que l'écran \"create-event\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Nom de l'événement |\n | Date |\n | Heure de début |\n | Lieu |\n | Thématique |\n",
|
||||
"screenIds": [
|
||||
"create-event"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-24",
|
||||
@@ -1521,7 +1582,11 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/user/us-24-notification-contacts.feature",
|
||||
"rawContent": "# language: fr\n@USER @priority-2\nFonctionnalité: US-24 Être notifié des activités de mes contacts\n En tant qu'utilisateur\n Je peux être notifié lorsqu'un contact participe à des événements\n Afin d'obtenir une synthèse du contenu des ateliers et événements\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder aux paramètres de notification\n Étant donné que je suis sur la page \"paramètres\"\n Alors l'écran contient une section \"Notifications\"\n\n Scénario: Configurer les notifications de contacts\n Étant donné que je suis sur la page \"paramètres\"\n Alors je peux configurer mes notifications\n\n Scénario: Voir les activités de mes contacts sur l'accueil\n Étant donné que je suis sur la page \"accueil\"\n Alors l'écran contient une section \"Activités de mes contacts\"\n\n Scénario: Vérifier les données des paramètres\n Étant donné que l'écran \"settings\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Notifications |\n | Confidentialité |\n | Rayon de notification |\n"
|
||||
"rawContent": "# language: fr\n@USER @priority-2\nFonctionnalité: US-24 Être notifié des activités de mes contacts\n En tant qu'utilisateur\n Je peux être notifié lorsqu'un contact participe à des événements\n Afin d'obtenir une synthèse du contenu des ateliers et événements\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder aux paramètres de notification\n Étant donné que je suis sur la page \"paramètres\"\n Alors l'écran contient une section \"Notifications\"\n\n Scénario: Configurer les notifications de contacts\n Étant donné que je suis sur la page \"paramètres\"\n Alors je peux configurer mes notifications\n\n Scénario: Voir les activités de mes contacts sur l'accueil\n Étant donné que je suis sur la page \"accueil\"\n Alors l'écran contient une section \"Activités de mes contacts\"\n\n Scénario: Vérifier les données des paramètres\n Étant donné que l'écran \"settings\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Notifications |\n | Confidentialité |\n | Rayon de notification |\n",
|
||||
"screenIds": [
|
||||
"home",
|
||||
"settings"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-22",
|
||||
@@ -1612,7 +1677,10 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/user/us-22-parrainer.feature",
|
||||
"rawContent": "# language: fr\n@USER @priority-2\nFonctionnalité: US-22 Parrainer un nouvel utilisateur\n En tant qu'utilisateur\n Je peux parrainer un nouvel utilisateur\n En lui partageant mon QR code ou lien de contact\n Afin de savoir combien de personnes ont rejoint le réseau grâce à moi\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder au partage de profil\n Étant donné que je suis sur la page \"mon profil\"\n Alors l'écran contient une section \"Partager mon profil\"\n\n Scénario: Voir le QR code de parrainage\n Étant donné que je suis sur la page \"mon profil\"\n Alors je peux voir le QR code\n\n Scénario: Voir le lien de parrainage\n Étant donné que je suis sur la page \"mon profil\"\n Alors je peux voir le lien de partage\n\n Scénario: Voir les statistiques de parrainage\n Étant donné que je suis sur la page \"mon profil\"\n Alors l'écran contient une section \"Mes parrainages\"\n\n Scénario: Vérifier les données du profil\n Étant donné que l'écran \"profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n"
|
||||
"rawContent": "# language: fr\n@USER @priority-2\nFonctionnalité: US-22 Parrainer un nouvel utilisateur\n En tant qu'utilisateur\n Je peux parrainer un nouvel utilisateur\n En lui partageant mon QR code ou lien de contact\n Afin de savoir combien de personnes ont rejoint le réseau grâce à moi\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder au partage de profil\n Étant donné que je suis sur la page \"mon profil\"\n Alors l'écran contient une section \"Partager mon profil\"\n\n Scénario: Voir le QR code de parrainage\n Étant donné que je suis sur la page \"mon profil\"\n Alors je peux voir le QR code\n\n Scénario: Voir le lien de parrainage\n Étant donné que je suis sur la page \"mon profil\"\n Alors je peux voir le lien de partage\n\n Scénario: Voir les statistiques de parrainage\n Étant donné que je suis sur la page \"mon profil\"\n Alors l'écran contient une section \"Mes parrainages\"\n\n Scénario: Vérifier les données du profil\n Étant donné que l'écran \"profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n",
|
||||
"screenIds": [
|
||||
"profile"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-21",
|
||||
@@ -1711,7 +1779,11 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/user/us-21-profil-public.feature",
|
||||
"rawContent": "# language: fr\n@USER @priority-2\nFonctionnalité: US-21 Décider que tous les utilisateurs puissent suivre mes activités\n En tant qu'utilisateur\n Je peux décider que tous les utilisateurs puissent suivre toutes mes activités\n En déclarant mon profil public\n Afin de communiquer au sujet de mes déplacements et faire la publicité des événements\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder aux paramètres de profil\n Étant donné que je suis sur la page \"mon profil\"\n Quand je navigue vers \"paramètres\"\n Alors je vois l'écran \"settings\"\n\n Scénario: Configurer la visibilité du profil\n Étant donné que je suis sur la page \"paramètres\"\n Alors l'écran contient une section \"Confidentialité\"\n\n Scénario: Rendre le profil public\n Étant donné que je suis sur la page \"paramètres\"\n Quand je clique sur \"Profil public\"\n Alors l'écran contient une section \"Visibilité\"\n\n Scénario: Vérifier les données des paramètres\n Étant donné que l'écran \"settings\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Notifications |\n | Confidentialité |\n | Rayon de notification |\n\n Scénario: Vérifier les données du profil\n Étant donné que l'écran \"profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n"
|
||||
"rawContent": "# language: fr\n@USER @priority-2\nFonctionnalité: US-21 Décider que tous les utilisateurs puissent suivre mes activités\n En tant qu'utilisateur\n Je peux décider que tous les utilisateurs puissent suivre toutes mes activités\n En déclarant mon profil public\n Afin de communiquer au sujet de mes déplacements et faire la publicité des événements\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder aux paramètres de profil\n Étant donné que je suis sur la page \"mon profil\"\n Quand je navigue vers \"paramètres\"\n Alors je vois l'écran \"settings\"\n\n Scénario: Configurer la visibilité du profil\n Étant donné que je suis sur la page \"paramètres\"\n Alors l'écran contient une section \"Confidentialité\"\n\n Scénario: Rendre le profil public\n Étant donné que je suis sur la page \"paramètres\"\n Quand je clique sur \"Profil public\"\n Alors l'écran contient une section \"Visibilité\"\n\n Scénario: Vérifier les données des paramètres\n Étant donné que l'écran \"settings\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Notifications |\n | Confidentialité |\n | Rayon de notification |\n\n Scénario: Vérifier les données du profil\n Étant donné que l'écran \"profile\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Photo de profil |\n | Nom |\n | Pseudo |\n",
|
||||
"screenIds": [
|
||||
"profile",
|
||||
"settings"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-5",
|
||||
@@ -1814,7 +1886,10 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/event/us-5-commentaires-evenement.feature",
|
||||
"rawContent": "# language: fr\n@EVENT @priority-3\nFonctionnalité: US-5 Ajouter/modifier/supprimer un commentaire à un événement\n En tant qu'utilisateur\n Je peux consulter et ajouter/modifier/supprimer un commentaire à un événement\n En sélectionnant l'icône \"ajouter un commentaire\" en dessous du titre\n Afin de voir les commentaires précédents et ajouter mes notes personnelles\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Voir les commentaires existants\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Notes personnelles\"\n\n @pending\n Scénario: Ajouter un commentaire\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Ajouter un commentaire\"\n Alors je peux ajouter un commentaire\n\n Scénario: Modifier un commentaire\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Modifier\"\n Alors je peux modifier un commentaire\n\n Scénario: Supprimer un commentaire\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Supprimer\"\n Alors je peux supprimer un commentaire\n\n Scénario: Vérifier les données de l'écran\n Étant donné que l'écran \"event-detail\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Titre |\n | Date |\n | Lieu |\n"
|
||||
"rawContent": "# language: fr\n@EVENT @priority-3\nFonctionnalité: US-5 Ajouter/modifier/supprimer un commentaire à un événement\n En tant qu'utilisateur\n Je peux consulter et ajouter/modifier/supprimer un commentaire à un événement\n En sélectionnant l'icône \"ajouter un commentaire\" en dessous du titre\n Afin de voir les commentaires précédents et ajouter mes notes personnelles\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Voir les commentaires existants\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Notes personnelles\"\n\n @pending\n Scénario: Ajouter un commentaire\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Ajouter un commentaire\"\n Alors je peux ajouter un commentaire\n\n Scénario: Modifier un commentaire\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Modifier\"\n Alors je peux modifier un commentaire\n\n Scénario: Supprimer un commentaire\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Supprimer\"\n Alors je peux supprimer un commentaire\n\n Scénario: Vérifier les données de l'écran\n Étant donné que l'écran \"event-detail\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Titre |\n | Date |\n | Lieu |\n",
|
||||
"screenIds": [
|
||||
"event-detail"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-8",
|
||||
@@ -1907,7 +1982,11 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/event/us-8-macro-evenement.feature",
|
||||
"rawContent": "# language: fr\n@EVENT @priority-3\nFonctionnalité: US-8 Consulter et m'inscrire à un macro-événement\n En tant qu'utilisateur\n Je peux consulter et m'inscrire à un événement de type \"Macro-événement\"\n En créant ou en rattachant des événements existants à ce macro-événement\n Afin de voir une consolidation des commentaires/liens/ressources/participants\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Consulter un macro-événement\n Étant donné que je suis sur la page \"découvrir\"\n Quand je clique sur un événement\n Alors je vois l'écran \"event-detail\"\n Et l'écran contient une section \"Événements rattachés\"\n\n @pending\n Scénario: Voir les événements rattachés\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Événements rattachés\"\n\n Scénario: Rattacher un événement existant\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Rattacher un événement\"\n Alors l'écran contient une section \"Sélection d'événement\"\n\n Scénario: Voir la consolidation des participants\n Étant donné que je suis sur la page \"détail événement\"\n Alors je peux voir la liste des participants\n Et l'écran contient une section \"Participants consolidés\"\n"
|
||||
"rawContent": "# language: fr\n@EVENT @priority-3\nFonctionnalité: US-8 Consulter et m'inscrire à un macro-événement\n En tant qu'utilisateur\n Je peux consulter et m'inscrire à un événement de type \"Macro-événement\"\n En créant ou en rattachant des événements existants à ce macro-événement\n Afin de voir une consolidation des commentaires/liens/ressources/participants\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Consulter un macro-événement\n Étant donné que je suis sur la page \"découvrir\"\n Quand je clique sur un événement\n Alors je vois l'écran \"event-detail\"\n Et l'écran contient une section \"Événements rattachés\"\n\n @pending\n Scénario: Voir les événements rattachés\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Événements rattachés\"\n\n Scénario: Rattacher un événement existant\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Rattacher un événement\"\n Alors l'écran contient une section \"Sélection d'événement\"\n\n Scénario: Voir la consolidation des participants\n Étant donné que je suis sur la page \"détail événement\"\n Alors je peux voir la liste des participants\n Et l'écran contient une section \"Participants consolidés\"\n",
|
||||
"screenIds": [
|
||||
"event-detail",
|
||||
"events"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-1",
|
||||
@@ -1996,7 +2075,11 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/workshop/us-1-visualiser-atelier-termine.feature",
|
||||
"rawContent": "# language: fr\n@WORKSHOP @priority-3\nFonctionnalité: US-1 Visualiser un événement terminé (ateliers)\n En tant qu'utilisateur\n Je peux visualiser un événement terminé et consulter le programme détaillé des ateliers par journée/heure\n Afin de voir les personnes qui ont participé à chaque atelier et consulter les notes/liens/commentaires\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder aux détails d'un événement terminé\n Étant donné que je suis sur la page \"accueil\"\n Quand je navigue vers \"détail événement\"\n Alors je vois l'écran \"event-detail\"\n Et l'écran contient une section \"Programme des ateliers\"\n\n Scénario: Consulter la liste des participants d'un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Alors je peux voir la liste des participants\n\n Scénario: Consulter les ressources d'un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Ressources\"\n Et l'écran contient une section \"Zone de partage collective\"\n\n Scénario: Vérifier les données affichées pour un atelier\n Étant donné que l'écran \"event-detail\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Titre |\n | Date |\n | Lieu |\n | Liste des participants |\n"
|
||||
"rawContent": "# language: fr\n@WORKSHOP @priority-3\nFonctionnalité: US-1 Visualiser un événement terminé (ateliers)\n En tant qu'utilisateur\n Je peux visualiser un événement terminé et consulter le programme détaillé des ateliers par journée/heure\n Afin de voir les personnes qui ont participé à chaque atelier et consulter les notes/liens/commentaires\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder aux détails d'un événement terminé\n Étant donné que je suis sur la page \"accueil\"\n Quand je navigue vers \"détail événement\"\n Alors je vois l'écran \"event-detail\"\n Et l'écran contient une section \"Programme des ateliers\"\n\n Scénario: Consulter la liste des participants d'un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Alors je peux voir la liste des participants\n\n Scénario: Consulter les ressources d'un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Ressources\"\n Et l'écran contient une section \"Zone de partage collective\"\n\n Scénario: Vérifier les données affichées pour un atelier\n Étant donné que l'écran \"event-detail\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Titre |\n | Date |\n | Lieu |\n | Liste des participants |\n",
|
||||
"screenIds": [
|
||||
"event-detail",
|
||||
"home"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-2",
|
||||
@@ -2081,7 +2164,10 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/workshop/us-2-visualiser-notes-atelier.feature",
|
||||
"rawContent": "# language: fr\n@WORKSHOP @priority-3\nFonctionnalité: US-2 Visualiser un événement terminé (notes)\n En tant qu'utilisateur\n Je peux visualiser un événement terminé et consulter le programme détaillé des ateliers\n Afin d'ajouter d'éventuelles prises de notes/liens ou des commentaires associés à l'atelier\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à la zone de notes personnelles\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Notes personnelles\"\n\n Scénario: Accéder à la zone de partage publique\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Zone de partage publique\"\n\n @pending\n Scénario: Ajouter une note personnelle\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Ajouter une note\"\n Alors je peux ajouter une note\n\n Scénario: Ajouter un lien/ressource\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Ajouter une ressource\"\n Alors l'écran contient une section \"Ressources\"\n"
|
||||
"rawContent": "# language: fr\n@WORKSHOP @priority-3\nFonctionnalité: US-2 Visualiser un événement terminé (notes)\n En tant qu'utilisateur\n Je peux visualiser un événement terminé et consulter le programme détaillé des ateliers\n Afin d'ajouter d'éventuelles prises de notes/liens ou des commentaires associés à l'atelier\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à la zone de notes personnelles\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Notes personnelles\"\n\n Scénario: Accéder à la zone de partage publique\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Zone de partage publique\"\n\n @pending\n Scénario: Ajouter une note personnelle\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Ajouter une note\"\n Alors je peux ajouter une note\n\n Scénario: Ajouter un lien/ressource\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Ajouter une ressource\"\n Alors l'écran contient une section \"Ressources\"\n",
|
||||
"screenIds": [
|
||||
"event-detail"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-14",
|
||||
@@ -2184,7 +2270,10 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/workshop/us-14-creer-atelier.feature",
|
||||
"rawContent": "# language: fr\n@WORKSHOP @priority-3\nFonctionnalité: US-14 Créer/Modifier/Supprimer un atelier\n En tant qu'utilisateur\n Je peux créer/modifier/supprimer un atelier\n En sélectionnant mon événement et en saisissant les dates et horaires de l'atelier\n Afin de définir le programme de mon événement et ajouter une description\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à la création d'atelier\n Étant donné que je suis sur la page \"créer un événement\"\n Alors l'écran contient une section \"Ateliers\"\n\n Scénario: Vérifier les champs obligatoires pour créer un atelier\n Étant donné que l'écran \"create-event\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Nom de l'événement |\n | Date |\n | Heure de début |\n | Lieu |\n | Thématique |\n\n Scénario: Créer un atelier\n Étant donné que je suis sur la page \"créer un événement\"\n Quand je clique sur \"Ajouter un atelier\"\n Alors l'écran contient une section \"Nouvel atelier\"\n\n Scénario: Modifier un atelier existant\n Étant donné que je suis sur la page \"créer un événement\"\n Quand je clique sur \"Modifier l'atelier\"\n Alors l'écran contient une section \"Modifier l'atelier\"\n\n Scénario: Supprimer un atelier\n Étant donné que je suis sur la page \"créer un événement\"\n Quand je clique sur \"Supprimer l'atelier\"\n Alors l'écran contient une section \"Confirmation\"\n"
|
||||
"rawContent": "# language: fr\n@WORKSHOP @priority-3\nFonctionnalité: US-14 Créer/Modifier/Supprimer un atelier\n En tant qu'utilisateur\n Je peux créer/modifier/supprimer un atelier\n En sélectionnant mon événement et en saisissant les dates et horaires de l'atelier\n Afin de définir le programme de mon événement et ajouter une description\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder à la création d'atelier\n Étant donné que je suis sur la page \"créer un événement\"\n Alors l'écran contient une section \"Ateliers\"\n\n Scénario: Vérifier les champs obligatoires pour créer un atelier\n Étant donné que l'écran \"create-event\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Nom de l'événement |\n | Date |\n | Heure de début |\n | Lieu |\n | Thématique |\n\n Scénario: Créer un atelier\n Étant donné que je suis sur la page \"créer un événement\"\n Quand je clique sur \"Ajouter un atelier\"\n Alors l'écran contient une section \"Nouvel atelier\"\n\n Scénario: Modifier un atelier existant\n Étant donné que je suis sur la page \"créer un événement\"\n Quand je clique sur \"Modifier l'atelier\"\n Alors l'écran contient une section \"Modifier l'atelier\"\n\n Scénario: Supprimer un atelier\n Étant donné que je suis sur la page \"créer un événement\"\n Quand je clique sur \"Supprimer l'atelier\"\n Alors l'écran contient une section \"Confirmation\"\n",
|
||||
"screenIds": [
|
||||
"create-event"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-11",
|
||||
@@ -2265,7 +2354,10 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/workshop/us-11-bilan-consolide.feature",
|
||||
"rawContent": "# language: fr\n@WORKSHOP @priority-3\nFonctionnalité: US-11 Visualiser le bilan consolidé de l'événement\n En tant qu'utilisateur\n Je peux visualiser le bilan consolidé de l'événement\n En consultant l'ensemble des commentaires regroupés par atelier\n Afin d'obtenir une synthèse du contenu de chaque atelier et de l'ensemble des ateliers\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder au bilan consolidé\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Bilan\"\n\n Scénario: Voir les commentaires regroupés par atelier\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Voir le bilan\"\n Alors l'écran contient une section \"Commentaires par atelier\"\n\n @pending\n Scénario: Voir la synthèse globale\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Synthèse\"\n\n Scénario: Vérifier les données du bilan\n Étant donné que l'écran \"event-detail\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Titre |\n | Date |\n | Liste des participants |\n"
|
||||
"rawContent": "# language: fr\n@WORKSHOP @priority-3\nFonctionnalité: US-11 Visualiser le bilan consolidé de l'événement\n En tant qu'utilisateur\n Je peux visualiser le bilan consolidé de l'événement\n En consultant l'ensemble des commentaires regroupés par atelier\n Afin d'obtenir une synthèse du contenu de chaque atelier et de l'ensemble des ateliers\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Accéder au bilan consolidé\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Bilan\"\n\n Scénario: Voir les commentaires regroupés par atelier\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Voir le bilan\"\n Alors l'écran contient une section \"Commentaires par atelier\"\n\n @pending\n Scénario: Voir la synthèse globale\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Synthèse\"\n\n Scénario: Vérifier les données du bilan\n Étant donné que l'écran \"event-detail\" est affiché\n Alors le formulaire contient les champs obligatoires suivants:\n | Titre |\n | Date |\n | Liste des participants |\n",
|
||||
"screenIds": [
|
||||
"event-detail"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-4",
|
||||
@@ -2354,7 +2446,10 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/workshop/us-4-commentaires-atelier.feature",
|
||||
"rawContent": "# language: fr\n@WORKSHOP @priority-3\nFonctionnalité: US-4 Ajouter/modifier/supprimer un commentaire à un atelier\n En tant qu'utilisateur\n Je peux consulter et ajouter/modifier/supprimer un commentaire à un atelier\n En sélectionnant l'icône \"ajouter un commentaire\" en dessous du titre de l'atelier\n Afin de voir les commentaires précédents et ajouter mes commentaires\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Voir les commentaires existants d'un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Commentaires\"\n\n @pending\n Scénario: Ajouter un commentaire à un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Ajouter un commentaire\"\n Alors je peux ajouter un commentaire\n\n Scénario: Modifier un commentaire existant\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Modifier\"\n Alors je peux modifier un commentaire\n\n Scénario: Supprimer un commentaire\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Supprimer\"\n Alors je peux supprimer un commentaire\n"
|
||||
"rawContent": "# language: fr\n@WORKSHOP @priority-3\nFonctionnalité: US-4 Ajouter/modifier/supprimer un commentaire à un atelier\n En tant qu'utilisateur\n Je peux consulter et ajouter/modifier/supprimer un commentaire à un atelier\n En sélectionnant l'icône \"ajouter un commentaire\" en dessous du titre de l'atelier\n Afin de voir les commentaires précédents et ajouter mes commentaires\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Voir les commentaires existants d'un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Alors l'écran contient une section \"Commentaires\"\n\n @pending\n Scénario: Ajouter un commentaire à un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Ajouter un commentaire\"\n Alors je peux ajouter un commentaire\n\n Scénario: Modifier un commentaire existant\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Modifier\"\n Alors je peux modifier un commentaire\n\n Scénario: Supprimer un commentaire\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Supprimer\"\n Alors je peux supprimer un commentaire\n",
|
||||
"screenIds": [
|
||||
"event-detail"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "us-6",
|
||||
@@ -2439,7 +2534,11 @@ export const parsedFeatures: ParsedFeature[] = [
|
||||
}
|
||||
],
|
||||
"filePath": "features/workshop/us-6-inscription-atelier.feature",
|
||||
"rawContent": "# language: fr\n@WORKSHOP @priority-3\nFonctionnalité: US-6 M'inscrire/me désinscrire à un événement (atelier)\n En tant qu'utilisateur\n Je peux m'inscrire/me désinscrire à un événement\n En regardant si l'événement public existe déjà et en m'enregistrant sur les différents ateliers\n Afin de m'inscrire à l'atelier tout en visualisant les personnes qui sont déjà pré-inscrites\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Rechercher un événement public existant\n Étant donné que je suis sur la page \"découvrir\"\n Alors je peux voir la liste des événements\n\n Scénario: Voir les personnes pré-inscrites à un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Alors je peux voir la liste des participants\n\n Scénario: S'inscrire à un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"S'inscrire\"\n Alors je peux m'inscrire à l'événement\n\n Scénario: Se désinscrire d'un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Se désinscrire\"\n Alors je peux me désinscrire de l'événement\n"
|
||||
"rawContent": "# language: fr\n@WORKSHOP @priority-3\nFonctionnalité: US-6 M'inscrire/me désinscrire à un événement (atelier)\n En tant qu'utilisateur\n Je peux m'inscrire/me désinscrire à un événement\n En regardant si l'événement public existe déjà et en m'enregistrant sur les différents ateliers\n Afin de m'inscrire à l'atelier tout en visualisant les personnes qui sont déjà pré-inscrites\n\n Contexte:\n Étant donné que je suis connecté en tant qu'utilisateur\n\n Scénario: Rechercher un événement public existant\n Étant donné que je suis sur la page \"découvrir\"\n Alors je peux voir la liste des événements\n\n Scénario: Voir les personnes pré-inscrites à un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Alors je peux voir la liste des participants\n\n Scénario: S'inscrire à un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"S'inscrire\"\n Alors je peux m'inscrire à l'événement\n\n Scénario: Se désinscrire d'un atelier\n Étant donné que je suis sur la page \"détail événement\"\n Quand je clique sur \"Se désinscrire\"\n Alors je peux me désinscrire de l'événement\n",
|
||||
"screenIds": [
|
||||
"event-detail",
|
||||
"events"
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
+17
-33
@@ -3,13 +3,15 @@
|
||||
*
|
||||
* This module provides:
|
||||
* - User stories definitions
|
||||
* - Screen-to-story bidirectional links (computed automatically)
|
||||
* - Screen-to-story bidirectional links (computed automatically from feature files)
|
||||
* - Sample data for mockups
|
||||
*
|
||||
* All relationships are defined once and computed automatically to avoid
|
||||
* synchronization issues between screens and stories.
|
||||
* screenIds are extracted automatically from .feature files by parse-features.ts.
|
||||
* Run `bun run features:parse` to update them.
|
||||
*/
|
||||
|
||||
import { parsedFeatures } from './features';
|
||||
|
||||
// ============================================================================
|
||||
// Types
|
||||
// ============================================================================
|
||||
@@ -22,11 +24,10 @@ export interface UserStoryDefinition {
|
||||
category: StoryCategory;
|
||||
title: string;
|
||||
description: string;
|
||||
screenIds: string[];
|
||||
}
|
||||
|
||||
export interface UserStory extends UserStoryDefinition {
|
||||
// Computed fields can be added here if needed
|
||||
screenIds: string[];
|
||||
}
|
||||
|
||||
export interface ScreenStories {
|
||||
@@ -80,7 +81,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'WORKSHOP',
|
||||
title: 'Visualiser un événement terminé',
|
||||
description: 'En tant qu\'utilisateur, je peux visualiser un événement terminé et consulter le programme détaillé des ateliers par journée/heure afin de voir les personnes qui ont participé à chaque atelier et consulter les notes/liens (Ressources)/commentaires de cet atelier (Zone de partage Collective).',
|
||||
screenIds: ['event-detail'],
|
||||
},
|
||||
// Row 2 - WORKSHOP - Priority 3
|
||||
{
|
||||
@@ -89,7 +89,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'WORKSHOP',
|
||||
title: 'Visualiser un événement terminé (notes)',
|
||||
description: 'En tant qu\'utilisateur, je peux visualiser un événement terminé et consulter le programme détaillé des ateliers par journée/heure afin de ajouter d\'éventuelles prises de notes/liens (ressources) ou des commentaires associés à l\'atelier (Zone privée de l\'utilisateur et/ou Zone partage publique).',
|
||||
screenIds: ['event-detail'],
|
||||
},
|
||||
// Row 3 - EVENT - Priority 1
|
||||
{
|
||||
@@ -98,7 +97,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'EVENT',
|
||||
title: 'Visualiser un événement terminé',
|
||||
description: 'En tant qu\'utilisateur, je peux visualiser un événement terminé et consulter la description de l\'événement afin de voir les personnes qui ont participé à cet événement.',
|
||||
screenIds: ['event-detail'],
|
||||
},
|
||||
// Row 4 - WORKSHOP - Priority 3
|
||||
{
|
||||
@@ -107,7 +105,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'WORKSHOP',
|
||||
title: 'Ajouter/modifier/supprimer un commentaire à un atelier',
|
||||
description: 'En tant qu\'utilisateur, je peux consulter et ajouter/modifier/supprimer un commentaire à un atelier en sélectionnant l\'icône « ajouter un commentaire » en dessous du titre de l\'atelier afin de voir les commentaires précédents et ajouter mes commentaires, mentionner mes ressentis, faire part de mes annotations.',
|
||||
screenIds: [],
|
||||
},
|
||||
// Row 5 - EVENT - Priority 3
|
||||
{
|
||||
@@ -116,7 +113,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'EVENT',
|
||||
title: 'Ajouter/modifier/supprimer un commentaire à un événement',
|
||||
description: 'En tant qu\'utilisateur, je peux consulter et ajouter/modifier/supprimer un commentaire à un événement en sélectionnant l\'icône « ajouter un commentaire » en dessous du titre de l\'événement (Notes Privées / Personnelles) indiquant les interactions avec les individus rencontrés (Date / Heure / Lieu) afin de voir les commentaires précédents et ajouter mes commentaires, mentionner mes ressentis, faire part de mes annotations.',
|
||||
screenIds: ['event-detail'],
|
||||
},
|
||||
// Row 6 - WORKSHOP - Priority 3
|
||||
{
|
||||
@@ -125,7 +121,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'WORKSHOP',
|
||||
title: 'M\'inscrire/me désinscrire à un événement (atelier)',
|
||||
description: 'En tant qu\'utilisateur, je peux m\'inscrire/me désinscrire à un événement en : 1- regardant si l\'événement public existe déjà, 2- M\'enregistrant sur les différents ateliers afin de m\'inscrire à l\'atelier tout en visualisant les personnes qui sont déjà pré-inscrites.',
|
||||
screenIds: [],
|
||||
},
|
||||
// Row 7 - EVENT - Priority 1
|
||||
{
|
||||
@@ -134,7 +129,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'EVENT',
|
||||
title: 'M\'inscrire/me désinscrire à un événement',
|
||||
description: 'En tant qu\'utilisateur, je peux m\'inscrire/me désinscrire à un événement après avoir consulté la description de l\'événement, les dates et le lieu de tenue de l\'événement s\'il existe déjà dans le système, ou en le retrouvant dans une base existante (Mobilizon, etc.).',
|
||||
screenIds: ['event-detail'],
|
||||
},
|
||||
// Row 8 - EVENT - Priority 3
|
||||
{
|
||||
@@ -143,7 +137,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'EVENT',
|
||||
title: 'Consulter et m\'inscrire à un macro-événement',
|
||||
description: 'En tant qu\'utilisateur, je peux consulter et m\'inscrire à un événement de type « Macro-événement » en créant ou en rattachant des événements existants à ce macro-événement afin de rattacher des événements existants à une thématique particulière ou créer un événement qui est répété est plusieurs périodes dans l\'année (les résidences reconnecté) et voir une consolidation des commentaires / Liens/Ressources /participants de chaque événement rattaché.',
|
||||
screenIds: [],
|
||||
},
|
||||
// Row 9 - USER - Priority 0
|
||||
{
|
||||
@@ -152,7 +145,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'USER',
|
||||
title: 'Visualiser la photo d\'un individu',
|
||||
description: 'En tant qu\'utilisateur, je peux visualiser la photo d\'un individu (ou ajouter une photo personnelle sur une fiche existante) et consulter la liste des inscrits à un atelier afin de identifier les personnes que j\'ai rencontré dont je n\'ai pas noté leur nom.',
|
||||
screenIds: ['profile'],
|
||||
},
|
||||
// Row 10 - USER - Priority 1
|
||||
{
|
||||
@@ -161,7 +153,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'USER',
|
||||
title: 'Visualiser la fiche/le profil d\'un participant',
|
||||
description: 'En tant qu\'utilisateur, je peux sélectionner un individu dans la liste des inscrits à un événement/atelier afin de voir les événements auxquels la personne a participé et voir un formulaire de contact pour intéragir avec elle.',
|
||||
screenIds: ['user-profile'],
|
||||
},
|
||||
// Row 11 - WORKSHOP - Priority 3
|
||||
{
|
||||
@@ -170,7 +161,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'WORKSHOP',
|
||||
title: 'Visualiser le bilan consolidé de l\'événement',
|
||||
description: 'En tant qu\'utilisateur, je peux visualiser le bilan consolidé de l\'événement en consultant l\'ensemble des commentaires regroupés par atelier afin de obtenir une synthèse du contenu de chaque atelier et de l\'ensemble des ateliers constituant l\'événement.',
|
||||
screenIds: ['event-detail'],
|
||||
},
|
||||
// Row 12 - USER - Priority 2
|
||||
{
|
||||
@@ -179,7 +169,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'USER',
|
||||
title: 'Consulter la carte / tableau des événements',
|
||||
description: 'En tant qu\'utilisateur, je peux consulter la carte / tableau des événements auxquels j\'ai participé en filtrant les événements auxquels j\'ai participé par dates ou par personne afin de avoir une vue consolidée des événements auxquels j\'ai participé ainsi que le lieu ou j\'ai pu rencontrer une personne ou une vue consolidée des événements auxquels une personne a participé.',
|
||||
screenIds: ['events', 'profile'],
|
||||
},
|
||||
// Row 13 - EVENT - Priority 1
|
||||
{
|
||||
@@ -188,7 +177,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'EVENT',
|
||||
title: 'Créer/Modifier/Supprimer un événement',
|
||||
description: 'En tant qu\'utilisateur, je peux créer/modifier/supprimer un événement en choisissant les dates et les horaires de début et de fin de l\'événement, retirer une organisation (personne ou structure) et choisir un lieu. [Données obligatoires : Titre, description, image, adresse, + thématique (sera utilisé pour les notifications)] afin de créer/présenter le contenu de cet événement et le catégoriser par type/thématique.',
|
||||
screenIds: ['create-event'],
|
||||
},
|
||||
// Row 14 - WORKSHOP - Priority 3
|
||||
{
|
||||
@@ -197,7 +185,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'WORKSHOP',
|
||||
title: 'Créer/Modifier/Supprimer un atelier',
|
||||
description: 'En tant qu\'utilisateur, je peux créer/modifier/supprimer un atelier en sélectionnant mon événement et en saisissant les dates et les horaires de début et de fin de l\'atelier afin de définir le programme de mon événement et ajouter description de cet atelier.',
|
||||
screenIds: ['create-event'],
|
||||
},
|
||||
// Row 15 - USER - Priority 1
|
||||
{
|
||||
@@ -206,7 +193,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'USER',
|
||||
title: 'Visualiser les inscrits à un atelier/événement',
|
||||
description: 'En tant qu\'utilisateur, je peux visualiser les inscrits à un atelier/événement en sélectionnant l\'atelier/l\'événement désiré dans la liste des événements/ateliers de l\'événement afin de consulter la liste des inscrits triée par ordre alphabétique.',
|
||||
screenIds: ['event-detail'],
|
||||
},
|
||||
// Row 16 - MEETING - Priority 1
|
||||
{
|
||||
@@ -215,7 +201,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'MEETING',
|
||||
title: 'Indiquer un ou plusieurs points de rencontre',
|
||||
description: 'En tant qu\'utilisateur, je peux indiquer un ou plusieurs points de rencontre en précisant le lieu (café,...) ainsi que l\'heure de cette rencontre (ou le délai ex : 30min avant l\'événement) afin de croiser et faire connaissance d\'autres participants. Je peux aussi échanger avec les autres participants nos liens de contact (QR code ou lien ou bluetooth ?).',
|
||||
screenIds: ['meeting-points'],
|
||||
},
|
||||
// Row 17 - NOTIF - Priority 2
|
||||
{
|
||||
@@ -224,7 +209,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'NOTIF',
|
||||
title: 'Informer automatiquement d\'autres utilisateurs',
|
||||
description: 'En tant qu\'utilisateur, je peux informer automatiquement d\'autres utilisateurs de ma participation à un événement en utilisant un système de notifications (e-mail,...) pour transmettre le lien de l\'événement afin d\'informer les utilisateurs qui résident à proximité de l\'événement (distance à déterminer/configurer). Ou bien informer les utilisateurs ayant manifesté un intérêt pour la thématique de l\'événement. Ou bien informer mes abonnés. Ou bien les trois à la fois.',
|
||||
screenIds: [],
|
||||
},
|
||||
// Row 18 - NOTIF - Priority 2
|
||||
{
|
||||
@@ -233,7 +217,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'NOTIF',
|
||||
title: 'Être informé lorsque de nouveaux participants s\'inscrivent',
|
||||
description: 'En tant qu\'utilisateur, je peux être informé lorsque de nouveaux participants s\'inscrivent à un événement auquel je suis inscrit en utilisant un système de notifications (e-mail,...) afin de savoir qui participe à un événement. Éventuellement être uniquement informé des participants que je connais déjà (paramétrable ex : mon réseau).',
|
||||
screenIds: [],
|
||||
},
|
||||
// Row 19 - NOTIF - Priority 2
|
||||
{
|
||||
@@ -242,7 +225,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'NOTIF',
|
||||
title: 'Recevoir un récapitulatif des prochaines rencontres',
|
||||
description: 'En tant qu\'utilisateur, je peux recevoir un récapitulatif des prochaines rencontres en réceptionnant une liste des événements auxquels je suis inscrit ou qui sont proches de chez moi afin de établir un programme des événements auxquels je participe par période (mois, trimestre, année,...).',
|
||||
screenIds: ['home'],
|
||||
},
|
||||
// Row 20 - USER - Priority 1
|
||||
{
|
||||
@@ -251,7 +233,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'USER',
|
||||
title: 'Voir le profil des personnes faisant partie de mon réseau',
|
||||
description: 'En tant qu\'utilisateur, je peux voir le profil des personnes faisant partie de mon réseau ainsi que le profil des personnes publiques et consulter la description de l\'événement afin de savoir si j\'ai envie de participer à cet événement.',
|
||||
screenIds: ['profile', 'friends-list', 'user-profile'],
|
||||
},
|
||||
// Row 21 - USER - Priority 2
|
||||
{
|
||||
@@ -260,7 +241,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'USER',
|
||||
title: 'Décider que tous les utilisateurs puissent suivre mes activités',
|
||||
description: 'En tant qu\'utilisateur, je peux décider que tous les utilisateurs puissent suivre toutes mes activités en déclarant mon profil public afin de communiquer au sujet de mes déplacements et faire la publicité des événements auxquels je participe.',
|
||||
screenIds: ['settings', 'profile'],
|
||||
},
|
||||
// Row 22 - USER - Priority 2
|
||||
{
|
||||
@@ -269,7 +249,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'USER',
|
||||
title: 'Parrainer un nouvel utilisateur',
|
||||
description: 'En tant qu\'utilisateur, je peux parrainer un nouvel utilisateur en lui partageant mon QR code ou lien de contact afin de savoir combien de personnes ont rejoint le réseau grâce à moi.',
|
||||
screenIds: ['profile', 'share-profile'],
|
||||
},
|
||||
// Row 23 - USER - Priority 1
|
||||
{
|
||||
@@ -278,7 +257,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'USER',
|
||||
title: 'Me connecter avec d\'autres utilisateurs',
|
||||
description: 'En tant qu\'utilisateur, je peux me connecter avec d\'autres utilisateurs en partageant mon QR code ou mon lien de contact afin de étendre mon réseau.',
|
||||
screenIds: ['profile', 'share-profile'],
|
||||
},
|
||||
// Row 24 - USER - Priority 2
|
||||
{
|
||||
@@ -287,7 +265,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'USER',
|
||||
title: 'Être notifié des activités de mes contacts',
|
||||
description: 'En tant qu\'utilisateur, je peux être notifié lorsqu\'un contact participe à des événements afin de obtenir une synthèse du contenu de chaque atelier et de l\'ensemble des ateliers constituant l\'événement.',
|
||||
screenIds: [],
|
||||
},
|
||||
// Row 25 - USER - Priority 2
|
||||
{
|
||||
@@ -296,7 +273,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'USER',
|
||||
title: 'Être averti des événements susceptibles de m\'intéresser',
|
||||
description: 'En tant qu\'utilisateur, je peux être notifié lorsqu\'un nouvel événement est ajouté près de chez moi et/ou avec une thématique qui m\'intéresse en configurant mes notifications.',
|
||||
screenIds: ['settings'],
|
||||
},
|
||||
// Row 26 - USER - Priority 2
|
||||
{
|
||||
@@ -305,7 +281,6 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
category: 'USER',
|
||||
title: 'Définir la portée d\'un événement',
|
||||
description: 'En tant qu\'utilisateur, je peux créer/présenter le contenu de cet événement et le catégoriser par type/thématique (Liste fixe à déterminer) en indiquant son rayon d\'intérêt en kilomètres afin de m\'assurer que les utilisateurs qui habitent trop loin ne reçoivent pas de notification.',
|
||||
screenIds: ['create-event'],
|
||||
},
|
||||
];
|
||||
|
||||
@@ -313,8 +288,17 @@ const userStoriesData: UserStoryDefinition[] = [
|
||||
// Computed data & indexes
|
||||
// ============================================================================
|
||||
|
||||
// Export the stories as immutable
|
||||
export const userStories: UserStory[] = userStoriesData;
|
||||
// Build a map of feature id -> screenIds from parsed features
|
||||
const featureScreenIds = new Map<string, string[]>();
|
||||
for (const feature of parsedFeatures) {
|
||||
featureScreenIds.set(feature.id, feature.screenIds);
|
||||
}
|
||||
|
||||
// Export the stories with screenIds computed from parsed features
|
||||
export const userStories: UserStory[] = userStoriesData.map(story => ({
|
||||
...story,
|
||||
screenIds: featureScreenIds.get(story.id) || [],
|
||||
}));
|
||||
|
||||
// Build reverse index: screenId -> stories
|
||||
const storiesByScreenIndex = new Map<string, UserStory[]>();
|
||||
|
||||
+26
-26
@@ -19,7 +19,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 4,
|
||||
"failed": 0,
|
||||
"skipped": 1,
|
||||
"lastRun": "2026-01-18T18:01:45.485Z",
|
||||
"lastRun": "2026-01-18T20:32:26.120Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder à la création d'événement",
|
||||
@@ -49,7 +49,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 3,
|
||||
"failed": 0,
|
||||
"skipped": 1,
|
||||
"lastRun": "2026-01-18T18:01:45.485Z",
|
||||
"lastRun": "2026-01-18T20:32:26.120Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder aux détails d'un événement terminé",
|
||||
@@ -75,7 +75,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 0,
|
||||
"failed": 0,
|
||||
"skipped": 5,
|
||||
"lastRun": "2026-01-18T18:01:45.485Z",
|
||||
"lastRun": "2026-01-18T20:32:26.120Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Voir les commentaires existants",
|
||||
@@ -105,7 +105,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 2,
|
||||
"failed": 0,
|
||||
"skipped": 3,
|
||||
"lastRun": "2026-01-18T18:01:45.485Z",
|
||||
"lastRun": "2026-01-18T20:32:26.120Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Consulter un événement avant inscription",
|
||||
@@ -135,7 +135,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 0,
|
||||
"failed": 0,
|
||||
"skipped": 4,
|
||||
"lastRun": "2026-01-18T18:01:45.485Z",
|
||||
"lastRun": "2026-01-18T20:32:26.120Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Consulter un macro-événement",
|
||||
@@ -161,7 +161,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 2,
|
||||
"failed": 0,
|
||||
"skipped": 4,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.120Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder aux points de rencontre",
|
||||
@@ -195,7 +195,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 0,
|
||||
"failed": 0,
|
||||
"skipped": 5,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Partager un événement auquel je participe",
|
||||
@@ -225,7 +225,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 1,
|
||||
"failed": 0,
|
||||
"skipped": 4,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Configurer les notifications de nouveaux participants",
|
||||
@@ -255,7 +255,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 1,
|
||||
"failed": 0,
|
||||
"skipped": 4,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Voir les événements à venir sur l'accueil",
|
||||
@@ -285,7 +285,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 4,
|
||||
"failed": 0,
|
||||
"skipped": 1,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder au profil d'un participant",
|
||||
@@ -315,7 +315,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 2,
|
||||
"failed": 0,
|
||||
"skipped": 4,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder à la liste des événements depuis le profil",
|
||||
@@ -349,7 +349,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 3,
|
||||
"failed": 0,
|
||||
"skipped": 1,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder à la liste des inscrits",
|
||||
@@ -375,7 +375,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 3,
|
||||
"failed": 0,
|
||||
"skipped": 2,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder à mon profil",
|
||||
@@ -405,7 +405,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 2,
|
||||
"failed": 0,
|
||||
"skipped": 3,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder aux paramètres de profil",
|
||||
@@ -435,7 +435,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 0,
|
||||
"failed": 0,
|
||||
"skipped": 5,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder au partage de profil",
|
||||
@@ -465,7 +465,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 2,
|
||||
"failed": 0,
|
||||
"skipped": 3,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder au partage depuis le profil",
|
||||
@@ -495,7 +495,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 2,
|
||||
"failed": 0,
|
||||
"skipped": 2,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder aux paramètres de notification",
|
||||
@@ -521,7 +521,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 1,
|
||||
"failed": 0,
|
||||
"skipped": 3,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder aux paramètres de notification",
|
||||
@@ -547,7 +547,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 2,
|
||||
"failed": 0,
|
||||
"skipped": 2,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder à la création d'événement",
|
||||
@@ -573,7 +573,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 2,
|
||||
"failed": 0,
|
||||
"skipped": 2,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder au profil pour voir la photo",
|
||||
@@ -599,7 +599,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 1,
|
||||
"failed": 0,
|
||||
"skipped": 3,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder aux détails d'un événement terminé",
|
||||
@@ -625,7 +625,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 0,
|
||||
"failed": 0,
|
||||
"skipped": 4,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder au bilan consolidé",
|
||||
@@ -651,7 +651,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 1,
|
||||
"failed": 0,
|
||||
"skipped": 4,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder à la création d'atelier",
|
||||
@@ -681,7 +681,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 0,
|
||||
"failed": 0,
|
||||
"skipped": 4,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Accéder à la zone de notes personnelles",
|
||||
@@ -707,7 +707,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 0,
|
||||
"failed": 0,
|
||||
"skipped": 4,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Voir les commentaires existants d'un atelier",
|
||||
@@ -733,7 +733,7 @@ const rawResults: RawFeatureTestStatus[] = [
|
||||
"passed": 2,
|
||||
"failed": 0,
|
||||
"skipped": 2,
|
||||
"lastRun": "2026-01-18T18:01:45.486Z",
|
||||
"lastRun": "2026-01-18T20:32:26.121Z",
|
||||
"scenarios": [
|
||||
{
|
||||
"name": "Rechercher un événement public existant",
|
||||
|
||||
Reference in New Issue
Block a user