@@ -4,69 +4,70 @@ import { useLoggedUser } from '../helpers/auth.ts';
4
4
import { databaseBuilder } from '../helpers/db.ts' ;
5
5
import { test } from '../helpers/fixtures.ts' ;
6
6
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 ( ) ;
11
10
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 ( ) ;
13
13
14
- await expect ( page . getByText ( 'Vous êtes invité(e) à' ) ) . toBeVisible ( ) ;
14
+ test . step ( 'signup user' , async ( ) => {
15
15
await page . getByRole ( 'textbox' , { name : 'Prénom' } ) . fill ( 'mini' ) ;
16
16
await page . getByRole ( 'textbox' , { name : 'Nom' , exact : true } ) . fill ( 'pixou' ) ;
17
17
await page . getByRole ( 'textbox' , { name : 'Adresse e-mail' } ) . fill ( 'minipixou@example.net' ) ;
18
18
await page . getByRole ( 'textbox' , { name : 'Mot de passe' } ) . fill ( 'Azerty123*' ) ;
19
19
await page . getByRole ( 'checkbox' , { name : "Accepter les conditions d'utilisation de Pix" } ) . check ( ) ;
20
20
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 ( ) ;
24
21
} ) ;
25
22
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 ( ) ;
32
25
33
- await page . goto ( `/rejoindre?invitationId=${ invitation . id } &code=${ invitation . code } ` ) ;
26
+ await expect ( page . getByRole ( 'heading' , { name : 'Campagnes' } ) ) . toBeVisible ( ) ;
27
+ } ) ;
34
28
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 ( ) => {
35
38
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 ) ;
37
40
await page . getByRole ( 'textbox' , { name : 'Mot de passe' } ) . fill ( 'pix123' ) ;
38
41
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 ( ) ;
44
42
} ) ;
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 ( ) ;
45
48
} ) ;
46
49
47
- test . describe ( 'when user is authenticated' , ( ) => {
50
+ test . describe ( 'When user is already authenticated to Pix Orga ' , ( ) => {
48
51
const userId = useLoggedUser ( 'pix-orga' ) ;
49
52
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 } ) {
51
54
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 } ) ;
56
56
await databaseBuilder . commit ( ) ;
57
57
58
58
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 ( ) => {
60
62
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 ) ;
62
64
await page . getByRole ( 'textbox' , { name : 'Mot de passe' } ) . fill ( 'pix123' ) ;
63
65
await page . getByRole ( 'button' , { name : 'Je me connecte' } ) . click ( ) ;
64
66
} ) ;
65
67
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 ( ) ;
69
69
await page . getByRole ( 'button' , { name : 'Accepter et continuer' } ) . click ( ) ;
70
+
70
71
await expect ( page . getByRole ( 'heading' , { name : 'Campagnes' } ) ) . toBeVisible ( ) ;
71
72
await expect ( page . getByRole ( 'paragraph' ) . filter ( { hasText : 'Observatoire de Pix' } ) ) . toBeVisible ( ) ;
72
73
} ) ;
0 commit comments