@@ -6,19 +6,19 @@ test('Create, update and delete a user', async ({ page }) => {
66 await page . goto ( '/' ) ;
77 await waitPageLoading ( page ) ;
88 await page . getByRole ( 'link' , { name : 'Admin area' } ) . click ( ) ;
9- await page . waitForURL ( '/admin' ) ;
9+ await waitPageLoading ( page ) ;
1010 } ) ;
1111
1212 await test . step ( 'Open the manage users page' , async ( ) => {
1313 await page . getByRole ( 'link' , { name : 'Manage users' } ) . click ( ) ;
14- await page . waitForURL ( '/admin/users' ) ;
1514 await waitPageLoading ( page ) ;
15+ await page . getByText ( 'Users list' ) . waitFor ( ) ;
1616 } ) ;
1717
1818 await test . step ( 'Open the user registration page' , async ( ) => {
1919 await page . getByRole ( 'link' , { name : 'Register new user' } ) . click ( ) ;
20- await page . waitForURL ( '/admin/users/register' ) ;
2120 await waitPageLoading ( page ) ;
21+ await page . getByText ( 'Registering new user' ) . waitFor ( ) ;
2222 } ) ;
2323
2424 const randomUserName = Math . random ( ) . toString ( 36 ) . substring ( 7 ) ;
@@ -46,7 +46,8 @@ test('Create, update and delete a user', async ({ page }) => {
4646 await page . getByLabel ( 'Cache dir' ) . fill ( '/tmp/test' ) ;
4747
4848 await page . getByRole ( 'button' , { name : 'Save' } ) . click ( ) ;
49- await page . waitForURL ( '/admin/users' ) ;
49+ await waitPageLoading ( page ) ;
50+ await page . getByText ( 'Users list' ) . waitFor ( ) ;
5051
5152 await expect ( page . getByRole ( 'cell' , { name : randomUserName } ) ) . toHaveCount ( 3 ) ;
5253
@@ -65,7 +66,6 @@ test('Create, update and delete a user', async ({ page }) => {
6566 await test . step ( 'Display the user info page' , async ( ) => {
6667 const userRow = await getUserRow ( page , randomUserName ) ;
6768 await userRow . getByRole ( 'link' , { name : 'Info' } ) . click ( ) ;
68- await page . waitForURL ( `/admin/users/${ userId } ` ) ;
6969 await waitPageLoading ( page ) ;
7070 const cells = await page . locator ( 'table td' ) . all ( ) ;
7171 expect ( await cells [ 0 ] . innerText ( ) ) . toEqual ( userId ) ;
@@ -79,14 +79,14 @@ test('Create, update and delete a user', async ({ page }) => {
7979 expect ( await cells [ 8 ] . innerText ( ) ) . toEqual ( '/tmp/test' ) ;
8080 } ) ;
8181
82- // Go back to previous page
83- await page . getByRole ( 'link' , { name : 'Manage users' } ) . click ( ) ;
84- await page . waitForURL ( '/admin/users' ) ;
82+ await test . step ( 'Go back to previous page' , async ( ) => {
83+ await page . getByRole ( 'link' , { name : 'Manage users' } ) . click ( ) ;
84+ await waitPageLoading ( page ) ;
85+ } ) ;
8586
8687 await test . step ( 'Open edit user page' , async ( ) => {
8788 const userRow = await getUserRow ( page , randomUserName ) ;
8889 await userRow . getByRole ( 'link' , { name : 'Edit' } ) . click ( ) ;
89- await page . waitForURL ( `/admin/users/${ userId } /edit` ) ;
9090 await waitPageLoading ( page ) ;
9191 } ) ;
9292
@@ -111,8 +111,12 @@ test('Create, update and delete a user', async ({ page }) => {
111111 await test . step ( 'SLURM account validation error' , async ( ) => {
112112 await page . getByRole ( 'button' , { name : 'Add SLURM account' } ) . click ( ) ;
113113 await page . getByRole ( 'button' , { name : 'Add SLURM account' } ) . click ( ) ;
114- await page . getByRole ( 'textbox' , { name : / ^ S L U R M a c c o u n t # 1 / } ) . fill ( randomUserName + '-slurm-account' ) ;
115- await page . getByRole ( 'textbox' , { name : / ^ S L U R M a c c o u n t # 2 / } ) . fill ( randomUserName + '-slurm-account' ) ;
114+ await page
115+ . getByRole ( 'textbox' , { name : / ^ S L U R M a c c o u n t # 1 / } )
116+ . fill ( randomUserName + '-slurm-account' ) ;
117+ await page
118+ . getByRole ( 'textbox' , { name : / ^ S L U R M a c c o u n t # 2 / } )
119+ . fill ( randomUserName + '-slurm-account' ) ;
116120 await page . getByRole ( 'button' , { name : 'Save' } ) . click ( ) ;
117121 await page . getByText ( '`slurm_accounts` list has repetitions' ) . waitFor ( ) ;
118122 await page . getByLabel ( 'Remove SLURM account' ) . first ( ) . click ( ) ;
@@ -128,7 +132,7 @@ test('Create, update and delete a user', async ({ page }) => {
128132 await page . getByLabel ( 'SLURM user' ) . fill ( randomUserName + '_slurm-renamed' ) ;
129133 await page . getByRole ( 'button' , { name : 'Save' } ) . click ( ) ;
130134
131- await page . waitForURL ( '/admin/users' ) ;
135+ await waitPageLoading ( page ) ;
132136
133137 const userRowCells = await getUserRowCells ( page , randomUserName + '-renamed' ) ;
134138 expect ( await userRowCells [ 1 ] . innerText ( ) ) . toEqual ( randomUserName + '@example.com' ) ;
@@ -142,7 +146,6 @@ test('Create, update and delete a user', async ({ page }) => {
142146 await test . step ( 'Display the user info page' , async ( ) => {
143147 const userRow = await getUserRow ( page , randomUserName + '-renamed' ) ;
144148 await userRow . getByRole ( 'link' , { name : 'Info' } ) . click ( ) ;
145- await page . waitForURL ( `/admin/users/${ userId } ` ) ;
146149 await waitPageLoading ( page ) ;
147150 const cells = await page . locator ( 'table td' ) . all ( ) ;
148151 expect ( await cells [ 0 ] . innerText ( ) ) . toEqual ( userId ) ;
@@ -158,14 +161,13 @@ test('Create, update and delete a user', async ({ page }) => {
158161
159162 await test . step ( 'Go back clicking on breadcrumb' , async ( ) => {
160163 await page . getByText ( 'Manage users' ) . click ( ) ;
161- await page . waitForURL ( `/admin/users` ) ;
162164 await waitPageLoading ( page ) ;
165+ await page . getByText ( 'Users list' ) . waitFor ( ) ;
163166 } ) ;
164167
165168 await test . step ( 'Grant superuser privilege' , async ( ) => {
166169 const userRow = await getUserRow ( page , randomUserName + '-renamed' ) ;
167170 await userRow . getByRole ( 'link' , { name : 'Edit' } ) . click ( ) ;
168- await page . waitForURL ( `/admin/users/${ userId } /edit` ) ;
169171 await page . locator ( '#superuser' ) . check ( ) ;
170172 await page . getByRole ( 'button' , { name : 'Save' } ) . click ( ) ;
171173
@@ -176,7 +178,7 @@ test('Create, update and delete a user', async ({ page }) => {
176178 'Do you really want to grant superuser privilege to this user?'
177179 ) ;
178180 await page . locator ( '.modal.show' ) . getByRole ( 'button' , { name : 'Confirm' } ) . click ( ) ;
179- await page . waitForURL ( '/admin/users' ) ;
181+ await page . getByText ( 'Users list' ) . waitFor ( ) ;
180182 await page . reload ( ) ;
181183
182184 await waitPageLoading ( page ) ;
@@ -190,7 +192,8 @@ test('Create, update and delete a user', async ({ page }) => {
190192 await test . step ( 'Revoke superuser privilege' , async ( ) => {
191193 const userRow = await getUserRow ( page , randomUserName + '-renamed' ) ;
192194 await userRow . getByRole ( 'link' , { name : 'Edit' } ) . click ( ) ;
193- await page . waitForURL ( `/admin/users/${ userId } /edit` ) ;
195+ await waitPageLoading ( page ) ;
196+ await page . getByText ( 'Editing user #' ) . waitFor ( ) ;
194197 await page . locator ( '#superuser' ) . uncheck ( ) ;
195198 await page . getByRole ( 'button' , { name : 'Save' } ) . click ( ) ;
196199
@@ -201,7 +204,8 @@ test('Create, update and delete a user', async ({ page }) => {
201204 'Do you really want to revoke superuser privilege to this user?'
202205 ) ;
203206 await page . locator ( '.modal.show' ) . getByRole ( 'button' , { name : 'Confirm' } ) . click ( ) ;
204- await page . waitForURL ( '/admin/users' ) ;
207+ await waitPageLoading ( page ) ;
208+ await page . getByText ( 'Users list' ) . waitFor ( ) ;
205209 await page . reload ( ) ;
206210
207211 await waitPageLoading ( page ) ;
@@ -235,6 +239,7 @@ async function getUserRowCells(page, username) {
235239 * @returns {Promise<import('@playwright/test').Locator> }
236240 */
237241async function getUserRow ( page , username ) {
242+ await page . getByRole ( 'row' ) . getByText ( username , { exact : true } ) . waitFor ( ) ;
238243 const rows = await page . locator ( 'tbody tr' ) . all ( ) ;
239244 for ( const row of rows ) {
240245 const cells = await row . locator ( 'td' ) . all ( ) ;
0 commit comments