From ac6df536ef266d58eecbbfd7c077c56f959b12ec Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Wed, 21 May 2025 23:48:00 +0200 Subject: [PATCH] tests: adapt e2e tests --- frontend/tests/account-settings.spec.ts | 10 ++++--- frontend/tests/api-key.spec.ts | 2 +- .../tests/application-configuration.spec.ts | 8 +++--- frontend/tests/oidc-client-settings.spec.ts | 16 +++++++++--- frontend/tests/user-group.spec.ts | 12 +++++---- frontend/tests/user-settings.spec.ts | 26 ++++++++++++------- 6 files changed, 47 insertions(+), 27 deletions(-) diff --git a/frontend/tests/account-settings.spec.ts b/frontend/tests/account-settings.spec.ts index 06d466ae..31114d15 100644 --- a/frontend/tests/account-settings.spec.ts +++ b/frontend/tests/account-settings.spec.ts @@ -15,7 +15,9 @@ test('Update account details', async ({ page }) => { await page.getByLabel('Username').fill('timothy'); await page.getByRole('button', { name: 'Save' }).click(); - await expect(page.getByRole('status')).toHaveText('Account details updated successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText( + 'Account details updated successfully' + ); }); test('Update account details fails with already taken email', async ({ page }) => { @@ -25,7 +27,7 @@ test('Update account details fails with already taken email', async ({ page }) = await page.getByRole('button', { name: 'Save' }).click(); - await expect(page.getByRole('status')).toHaveText('Email is already in use'); + await expect(page.locator('[data-type="error"]')).toHaveText('Email is already in use'); }); test('Update account details fails with already taken username', async ({ page }) => { @@ -35,7 +37,7 @@ test('Update account details fails with already taken username', async ({ page } await page.getByRole('button', { name: 'Save' }).click(); - await expect(page.getByRole('status')).toHaveText('Username is already in use'); + await expect(page.locator('[data-type="error"]')).toHaveText('Username is already in use'); }); test('Change Locale', async ({ page }) => { @@ -84,7 +86,7 @@ test('Delete passkey from account', async ({ page }) => { await page.getByLabel('Delete').first().click(); await page.getByText('Delete', { exact: true }).click(); - await expect(page.getByRole('status')).toHaveText('Passkey deleted successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText('Passkey deleted successfully'); }); test('Generate own one time access token as non admin', async ({ page, context }) => { diff --git a/frontend/tests/api-key.spec.ts b/frontend/tests/api-key.spec.ts index 53bc9e3a..84b61acb 100644 --- a/frontend/tests/api-key.spec.ts +++ b/frontend/tests/api-key.spec.ts @@ -62,7 +62,7 @@ test.describe('API Key Management', () => { await page.getByText('Revoke', { exact: true }).click(); // Verify success message - await expect(page.getByRole('status')).toHaveText('API key revoked successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText('API key revoked successfully'); // Verify key is no longer in the list await expect(page.getByRole('cell', { name: apiKey.name })).not.toBeVisible(); diff --git a/frontend/tests/application-configuration.spec.ts b/frontend/tests/application-configuration.spec.ts index 7a9f93bb..bc6c9a94 100644 --- a/frontend/tests/application-configuration.spec.ts +++ b/frontend/tests/application-configuration.spec.ts @@ -10,7 +10,7 @@ test('Update general configuration', async ({ page }) => { await page.getByLabel('Session Duration').fill('30'); await page.getByRole('button', { name: 'Save' }).first().click(); - await expect(page.getByRole('status')).toHaveText( + await expect(page.locator('[data-type="success"]')).toHaveText( 'Application configuration updated successfully' ); await expect(page.getByTestId('application-name')).toHaveText('Updated Name'); @@ -38,7 +38,9 @@ test('Update email configuration', async ({ page }) => { await page.getByRole('button', { name: 'Save' }).nth(1).click(); - await expect(page.getByRole('status')).toHaveText('Email configuration updated successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText( + 'Email configuration updated successfully' + ); await page.reload(); @@ -64,7 +66,7 @@ test('Update application images', async ({ page }) => { await page.getByLabel('Background Image').setInputFiles('tests/assets/clouds.jpg'); await page.getByRole('button', { name: 'Save' }).nth(1).click(); - await expect(page.getByRole('status')).toHaveText('Images updated successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText('Images updated successfully'); await page.request .get('/api/application-configuration/favicon') diff --git a/frontend/tests/oidc-client-settings.spec.ts b/frontend/tests/oidc-client-settings.spec.ts index f39db50b..70d94801 100644 --- a/frontend/tests/oidc-client-settings.spec.ts +++ b/frontend/tests/oidc-client-settings.spec.ts @@ -20,7 +20,9 @@ test('Create OIDC client', async ({ page }) => { const clientId = await page.getByTestId('client-id').textContent(); - await expect(page.getByRole('status')).toHaveText('OIDC client created successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText( + 'OIDC client created successfully' + ); expect(clientId?.length).toBe(36); expect((await page.getByTestId('client-secret').textContent())?.length).toBe(32); await expect(page.getByLabel('Name')).toHaveValue(oidcClient.name); @@ -41,7 +43,9 @@ test('Edit OIDC client', async ({ page }) => { await page.getByLabel('logo').setInputFiles('tests/assets/nextcloud-logo.png'); await page.getByRole('button', { name: 'Save' }).click(); - await expect(page.getByRole('status')).toHaveText('OIDC client updated successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText( + 'OIDC client updated successfully' + ); await expect(page.getByRole('img', { name: 'Nextcloud updated logo' })).toBeVisible(); await page.request .get(`/api/oidc/clients/${oidcClient.id}/logo`) @@ -55,7 +59,9 @@ test('Create new OIDC client secret', async ({ page }) => { await page.getByLabel('Create new client secret').click(); await page.getByRole('button', { name: 'Generate' }).click(); - await expect(page.getByRole('status')).toHaveText('New client secret created successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText( + 'New client secret created successfully' + ); expect((await page.getByTestId('client-secret').textContent())?.length).toBe(32); }); @@ -66,6 +72,8 @@ test('Delete OIDC client', async ({ page }) => { await page.getByRole('row', { name: oidcClient.name }).getByLabel('Delete').click(); await page.getByText('Delete', { exact: true }).click(); - await expect(page.getByRole('status')).toHaveText('OIDC client deleted successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText( + 'OIDC client deleted successfully' + ); await expect(page.getByRole('row', { name: oidcClient.name })).not.toBeVisible(); }); diff --git a/frontend/tests/user-group.spec.ts b/frontend/tests/user-group.spec.ts index 59646148..6a60dd56 100644 --- a/frontend/tests/user-group.spec.ts +++ b/frontend/tests/user-group.spec.ts @@ -13,7 +13,7 @@ test('Create user group', async ({ page }) => { await page.getByRole('button', { name: 'Save' }).click(); - await expect(page.getByRole('status')).toHaveText('User group created successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText('User group created successfully'); await page.waitForURL('/settings/admin/user-groups/*'); @@ -36,7 +36,7 @@ test('Edit user group', async ({ page }) => { await page.getByRole('button', { name: 'Save' }).nth(0).click(); - await expect(page.getByRole('status')).toHaveText('User group updated successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText('User group updated successfully'); await expect(page.getByLabel('Friendly Name')).toHaveValue('Developers updated'); await expect(page.getByLabel('Name', { exact: true })).toHaveValue('developers_updated'); }); @@ -50,7 +50,7 @@ test('Update user group users', async ({ page }) => { await page.getByRole('button', { name: 'Save' }).nth(1).click(); - await expect(page.getByRole('status')).toHaveText('Users updated successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText('Users updated successfully'); await page.reload(); @@ -70,7 +70,7 @@ test('Delete user group', async ({ page }) => { await page.getByRole('menuitem', { name: 'Delete' }).click(); await page.getByRole('button', { name: 'Delete' }).click(); - await expect(page.getByRole('status')).toHaveText('User group deleted successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText('User group deleted successfully'); await expect(page.getByRole('row', { name: group.name })).not.toBeVisible(); }); @@ -91,7 +91,9 @@ test('Update user group custom claims', async ({ page }) => { await page.getByRole('button', { name: 'Save' }).nth(2).click(); - await expect(page.getByRole('status')).toHaveText('Custom claims updated successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText( + 'Custom claims updated successfully' + ); await page.reload(); diff --git a/frontend/tests/user-settings.spec.ts b/frontend/tests/user-settings.spec.ts index edf16f04..d2ea1cea 100644 --- a/frontend/tests/user-settings.spec.ts +++ b/frontend/tests/user-settings.spec.ts @@ -17,7 +17,7 @@ test('Create user', async ({ page }) => { await page.getByRole('button', { name: 'Save' }).click(); await expect(page.getByRole('row', { name: `${user.firstname} ${user.lastname}` })).toBeVisible(); - await expect(page.getByRole('status')).toHaveText('User created successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText('User created successfully'); }); test('Create user fails with already taken email', async ({ page }) => { @@ -32,7 +32,7 @@ test('Create user fails with already taken email', async ({ page }) => { await page.getByLabel('Username').fill(user.username); await page.getByRole('button', { name: 'Save' }).click(); - await expect(page.getByRole('status')).toHaveText('Email is already in use'); + await expect(page.locator('[data-type="error"]')).toHaveText('Email is already in use'); }); test('Create user fails with already taken username', async ({ page }) => { @@ -47,7 +47,7 @@ test('Create user fails with already taken username', async ({ page }) => { await page.getByLabel('Username').fill(users.tim.username); await page.getByRole('button', { name: 'Save' }).click(); - await expect(page.getByRole('status')).toHaveText('Username is already in use'); + await expect(page.locator('[data-type="error"]')).toHaveText('Username is already in use'); }); test('Create one time access token', async ({ page, context }) => { @@ -85,7 +85,7 @@ test('Delete user', async ({ page }) => { await page.getByRole('menuitem', { name: 'Delete' }).click(); await page.getByRole('button', { name: 'Delete' }).click(); - await expect(page.getByRole('status')).toHaveText('User deleted successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText('User deleted successfully'); await expect( page.getByRole('row', { name: `${users.craig.firstname} ${users.craig.lastname}` @@ -110,7 +110,7 @@ test('Update user', async ({ page }) => { await page.getByLabel('Username').fill('crack'); await page.getByRole('button', { name: 'Save' }).first().click(); - await expect(page.getByRole('status')).toHaveText('User updated successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText('User updated successfully'); }); test('Update user fails with already taken email', async ({ page }) => { @@ -127,7 +127,7 @@ test('Update user fails with already taken email', async ({ page }) => { await page.getByLabel('Email').fill(users.tim.email); await page.getByRole('button', { name: 'Save' }).first().click(); - await expect(page.getByRole('status')).toHaveText('Email is already in use'); + await expect(page.locator('[data-type="error"]')).toHaveText('Email is already in use'); }); test('Update user fails with already taken username', async ({ page }) => { @@ -144,7 +144,7 @@ test('Update user fails with already taken username', async ({ page }) => { await page.getByLabel('Username').fill(users.tim.username); await page.getByRole('button', { name: 'Save' }).first().click(); - await expect(page.getByRole('status')).toHaveText('Username is already in use'); + await expect(page.locator('[data-type="error"]')).toHaveText('Username is already in use'); }); test('Update user custom claims', async ({ page }) => { @@ -164,7 +164,9 @@ test('Update user custom claims', async ({ page }) => { await page.getByRole('button', { name: 'Save' }).nth(1).click(); - await expect(page.getByRole('status')).toHaveText('Custom claims updated successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText( + 'Custom claims updated successfully' + ); await page.reload(); @@ -178,7 +180,9 @@ test('Update user custom claims', async ({ page }) => { await page.getByLabel('Remove custom claim').first().click(); await page.getByRole('button', { name: 'Save' }).nth(1).click(); - await expect(page.getByRole('status')).toHaveText('Custom claims updated successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText( + 'Custom claims updated successfully' + ); await page.reload(); @@ -198,7 +202,9 @@ test('Update user group assignments', async ({ page }) => { await page.getByRole('button', { name: 'Save' }).nth(1).click(); - await expect(page.getByRole('status')).toHaveText('User groups updated successfully'); + await expect(page.locator('[data-type="success"]')).toHaveText( + 'User groups updated successfully' + ); await page.reload();