Adapt the failing direct sign-up tests to the declarer notification decision

This commit is contained in:
Sylvain Duchesne
2026-11-06 23:09:48 +01:00
parent 9cbe78948b
commit af0cba6920
7 changed files with 178 additions and 3 deletions
@@ -63,6 +63,15 @@ Fonctionnalité: US-7 M'inscrire/me désinscrire à un événement
Alors aucune fenêtre de confirmation n'est ouverte
Et je vois le bouton "Se désinscrire de l'événement"
Scénario: Un contact inscrit directement apparaît parmi les participants de l'événement
Étant donné que je suis sur le détail de l'événement "Résidence Reconnexion"
Alors la liste des participants nomme "Jean Durand"
Scénario: Un participant inscrit directement qui n'est pas un contact n'est que compté
Étant donné que je suis sur le détail de l'événement "Formation CNV"
Alors la liste des participants compte des participants inconnus
Et la liste des participants ne nomme pas "user-hors-reseau"
Plan du Scénario: Le bouton Inviter suit l'inscription à l'événement, directe ou par un point de rencontre
Étant donné que je suis sur le détail de l'événement "<événement>"
Alors le bouton "Inviter" est <visibilité>
@@ -93,3 +93,15 @@ Then('je suis toujours inscrit aux points de rencontre {string} et {string}', as
const joined = buttons(this).filter(b => (b.textContent ?? '').trim() === '✓ Inscrit');
expect(joined.length, 'Both meeting points should still show as joined').to.equal(2);
});
Then('la liste des participants nomme {string}', async function (this: FestipodWorld, name: string) {
expect(this.getDomText(), `The participants should name "${name}"`).to.include(name);
});
Then('la liste des participants ne nomme pas {string}', async function (this: FestipodWorld, name: string) {
expect(this.getDomText(), `The participants should not name "${name}"`).to.not.include(name);
});
Then('la liste des participants compte des participants inconnus', async function (this: FestipodWorld) {
expect(this.getDomText(), 'Someone who is not a contact should be counted, not shown').to.include('Participant inconnu');
});
@@ -17,6 +17,10 @@ Fonctionnalité: US-10 Visualiser la fiche/le profil d'un participant
Étant donné que je suis sur la page "profil utilisateur"
Alors je peux voir les événements auxquels l'utilisateur a participé
Scénario: Le profil d'un contact liste les événements auxquels il est inscrit directement
Étant donné que je suis sur le profil de "Jean Durand"
Alors le profil liste l'événement "Résidence Reconnexion"
Scénario: Voir la localisation des événements
Étant donné que je suis sur la page "profil utilisateur"
Alors les événements affichent leur localisation et distance
+14
View File
@@ -1,6 +1,8 @@
import { Given, When, Then } from '@cucumber/cucumber';
import { expect } from 'chai';
import type { FestipodWorld } from '../../../../shared/support/world';
import { renderScreen } from '../../../../shared/test-harness/renderHelper';
import { seedUsers } from '../../../../shared/data/seedData';
When('je clique sur un participant', async function (this: FestipodWorld) {
await this.navigateTo('#/demo/user-profile');
@@ -96,3 +98,15 @@ function expectProfileDom(
expect((avatar?.textContent ?? '').trim(), `Avatar should show initials "${expected.initials}"`)
.to.equal(expected.initials);
}
Given('je suis sur le profil de {string}', async function (this: FestipodWorld, name: string) {
const user = seedUsers.find(u => u.name === name);
expect(user, `No seed user named "${name}"`).to.not.be.undefined;
this.currentScreenId = 'user-profile';
this.renderedDoc = await renderScreen('user-profile', `/users/${user!.id}`);
await new Promise<void>(resolve => setTimeout(resolve, 50));
});
Then('le profil liste l\'événement {string}', async function (this: FestipodWorld, title: string) {
expect(this.getDomText(), `The profile should list the event "${title}"`).to.include(title);
});
+2
View File
@@ -199,6 +199,8 @@ export const seedParticipations: FpParticipationData[] = [
// Marie is a member of both meeting points of event 5, and not signed up to it directly
{ id: 'part-6', eventId: 'mp-3', userId: 'user-1', isConfirmed: true },
{ id: 'part-7', eventId: 'mp-4', userId: 'user-1', isConfirmed: true },
// Someone Marie cannot read signed up directly to event 4: counted, never shown
{ id: 'part-8', eventId: 'event-4', userId: 'user-hors-reseau', isConfirmed: true },
];
export const seedMeetingPoints: FpMeetingPointData[] = [