Skip to content

Commit 73ef1e2

Browse files
authoredMar 26, 2025
refactor(e2e): some rewrites on onboarding.test.ts
1 parent 9f745f6 commit 73ef1e2

File tree

3 files changed

+59
-58
lines changed

3 files changed

+59
-58
lines changed
 
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
1-
Login => ok
1+
- [x] Login
22

3-
Onboarding
3+
**Onboarding**
44

5-
- Invitation et Signup (rejoindre une organisation)
6-
- Invitation et Signin (authentifié ou non)
7-
- Logout
5+
- [x] Invitation et Signup (rejoindre une organisation)
6+
- [x] Invitation et Signin (authentifié ou non)
7+
- [ ] Logout
88

9-
student-sco
9+
**student-sco**
1010

11-
- Accès d'un admin vs accès d'une membre
12-
- Je veux changer le mot de passe d'un élève
13-
- Je veux créer un identifiant pour un élève ayant la méthode de connexion Mediacentre
11+
- [ ] Accès d'un admin vs accès d'une membre
12+
- [ ] Je veux changer le mot de passe d'un élève
13+
- [ ] Je veux créer un identifiant pour un élève ayant la méthode de connexion Mediacentre
1414

15-
student-sup
15+
**student-sup**
1616

17-
- Accès d'un admin vs accès d'une membre
18-
- J'affiche la liste des élèves
17+
- [ ] Accès d'un admin vs accès d'une membre
18+
- [ ] J'affiche la liste des élèves
1919

20-
campagne-evaluation
20+
**campaign-evaluation**
2121

22-
- Création d'une campagne d'évaluation
23-
- Je consulte le détail d'une campagne d'évaluation
22+
- [ ] Création d'une campagne d'évaluation
23+
- [ ] Je consulte le détail d'une campagne d'évaluation
2424

25-
campagne-profile
25+
**campaign-profile**
2626

27-
- Création d'une campagne de profil
28-
- Je consulte le détail d'une campagne de profil
27+
- [ ] Création d'une campagne de profil
28+
- [ ] Je consulte le détail d'une campagne de profil
2929

30-
campagne-management
30+
**campaign-management**
3131

32-
- Duplication
33-
- Archivage / désarchivage
34-
- Modification
32+
- [ ] Duplication
33+
- [ ] Archivage / désarchivage
34+
- [ ] Modification
3535

36-
member-management
36+
**member-management**
3737

38-
- J'envoie une invitation à rejoindre Pix Orga
38+
- [ ] J'envoie une invitation à rejoindre Pix Orga

‎high-level-tests/e2e-playwright/pix-orga/onboarding.test.ts

+34-33
Original file line numberDiff line numberDiff line change
@@ -4,69 +4,70 @@ import { useLoggedUser } from '../helpers/auth.ts';
44
import { databaseBuilder } from '../helpers/db.ts';
55
import { test } from '../helpers/fixtures.ts';
66

7-
test.describe('when user is not authenticated', () => {
8-
test('Join an organization without having an account', async function ({ page }) {
9-
const invitation = databaseBuilder.factory.buildOrganizationInvitation();
10-
await databaseBuilder.commit();
7+
test('A new user joins a new organization from an invitation link', async function ({ page }) {
8+
const invitation = databaseBuilder.factory.buildOrganizationInvitation();
9+
await databaseBuilder.commit();
1110

12-
await page.goto(`/rejoindre?invitationId=${invitation.id}&code=${invitation.code}`);
11+
await page.goto(`/rejoindre?invitationId=${invitation.id}&code=${invitation.code}`);
12+
await expect(page.getByText('Vous êtes invité(e) à')).toBeVisible();
1313

14-
await expect(page.getByText('Vous êtes invité(e) à')).toBeVisible();
14+
test.step('signup user', async () => {
1515
await page.getByRole('textbox', { name: 'Prénom' }).fill('mini');
1616
await page.getByRole('textbox', { name: 'Nom', exact: true }).fill('pixou');
1717
await page.getByRole('textbox', { name: 'Adresse e-mail' }).fill('minipixou@example.net');
1818
await page.getByRole('textbox', { name: 'Mot de passe' }).fill('Azerty123*');
1919
await page.getByRole('checkbox', { name: "Accepter les conditions d'utilisation de Pix" }).check();
2020
await page.getByRole('button', { name: "Je m'inscris" }).click();
21-
await page.getByRole('heading', { name: "Veuillez accepter nos Conditions Générales d'Utilisation" }).waitFor();
22-
await page.getByRole('button', { name: 'Accepter et continuer' }).click();
23-
await expect(page.getByRole('heading', { name: 'Campagnes' })).toBeVisible();
2421
});
2522

26-
test('Join an organization with an existing account', async function ({ page }) {
27-
const invitation = databaseBuilder.factory.buildOrganizationInvitation();
28-
databaseBuilder.factory.buildUser.withRawPassword({
29-
email: 'random-account@example.net',
30-
});
31-
await databaseBuilder.commit();
23+
await page.getByRole('heading', { name: "Veuillez accepter nos Conditions Générales d'Utilisation" }).waitFor();
24+
await page.getByRole('button', { name: 'Accepter et continuer' }).click();
3225

33-
await page.goto(`/rejoindre?invitationId=${invitation.id}&code=${invitation.code}`);
26+
await expect(page.getByRole('heading', { name: 'Campagnes' })).toBeVisible();
27+
});
3428

29+
test('An existing user joins a new organization from an invitation link', async function ({ page }) {
30+
const invitation = databaseBuilder.factory.buildOrganizationInvitation();
31+
const user = databaseBuilder.factory.buildUser.withRawPassword();
32+
await databaseBuilder.commit();
33+
34+
await page.goto(`/rejoindre?invitationId=${invitation.id}&code=${invitation.code}`);
35+
await expect(page.getByText('Vous êtes invité(e) à')).toBeVisible();
36+
37+
test.step('signin user', async () => {
3538
await page.getByRole('button', { name: 'Se connecter' }).click();
36-
await page.getByRole('textbox', { name: 'Adresse e-mail' }).fill('random-account@example.net');
39+
await page.getByRole('textbox', { name: 'Adresse e-mail' }).fill(user.email);
3740
await page.getByRole('textbox', { name: 'Mot de passe' }).fill('pix123');
3841
await page.getByRole('button', { name: 'Je me connecte' }).click();
39-
await expect(
40-
page.getByRole('heading', { name: "Veuillez accepter nos Conditions Générales d'Utilisation" }),
41-
).toBeVisible();
42-
await page.getByRole('button', { name: 'Accepter et continuer' }).click();
43-
await expect(page.getByRole('heading', { name: 'Campagnes' })).toBeVisible();
4442
});
43+
44+
await page.getByRole('heading', { name: "Veuillez accepter nos Conditions Générales d'Utilisation" }).waitFor();
45+
await page.getByRole('button', { name: 'Accepter et continuer' }).click();
46+
47+
await expect(page.getByRole('heading', { name: 'Campagnes' })).toBeVisible();
4548
});
4649

47-
test.describe('when user is authenticated', () => {
50+
test.describe('When user is already authenticated to Pix Orga', () => {
4851
const userId = useLoggedUser('pix-orga');
4952

50-
test('Join an organization with an existing account', async function ({ page }) {
53+
test('Joins a new organization from an invitation link', async function ({ page }) {
5154
const invitation = databaseBuilder.factory.buildOrganizationInvitation();
52-
databaseBuilder.factory.buildUser.withMembership({
53-
id: userId,
54-
email: 'already-connected@example.net',
55-
});
55+
const user = databaseBuilder.factory.buildUser.withMembership({ id: userId });
5656
await databaseBuilder.commit();
5757

5858
await page.goto(`/rejoindre?invitationId=${invitation.id}&code=${invitation.code}`);
59-
test.step('signing user', async () => {
59+
await expect(page.getByText('Vous êtes invité(e) à')).toBeVisible();
60+
61+
test.step('signin user', async () => {
6062
await page.getByRole('button', { name: 'Se connecter' }).click();
61-
await page.getByRole('textbox', { name: 'Adresse e-mail' }).fill('already-connected@example.net');
63+
await page.getByRole('textbox', { name: 'Adresse e-mail' }).fill(user.email);
6264
await page.getByRole('textbox', { name: 'Mot de passe' }).fill('pix123');
6365
await page.getByRole('button', { name: 'Je me connecte' }).click();
6466
});
6567

66-
await expect(
67-
page.getByRole('heading', { name: "Veuillez accepter nos Conditions Générales d'Utilisation" }),
68-
).toBeVisible();
68+
await page.getByRole('heading', { name: "Veuillez accepter nos Conditions Générales d'Utilisation" }).waitFor();
6969
await page.getByRole('button', { name: 'Accepter et continuer' }).click();
70+
7071
await expect(page.getByRole('heading', { name: 'Campagnes' })).toBeVisible();
7172
await expect(page.getByRole('paragraph').filter({ hasText: 'Observatoire de Pix' })).toBeVisible();
7273
});

‎high-level-tests/e2e-playwright/playwright.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ export default defineConfig({
7575
START_JOB_IN_WEB_PROCESS: 'false',
7676
PIX_AUDIT_LOGGER_ENABLED: 'false',
7777
MAILING_ENABLED: 'false',
78-
FT_PIXAPP_NEW_LAYOUT_ENABLED: 'true',
78+
FT_PIXAPP_NEW_LAYOUT_ENABLED: 'false',
7979
},
8080
},
8181
{

0 commit comments

Comments
 (0)