mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-10-06 09:49:04 +02:00
feat: pin table row actions and add them to details pages
This commit is contained in:
@@ -101,6 +101,18 @@ test('Delete an API', async ({ page }) => {
|
||||
await expect(page.getByRole('row', { name: apis.orders.name })).not.toBeVisible();
|
||||
});
|
||||
|
||||
test('Delete an API from the details page', async ({ page }) => {
|
||||
await page.goto(`/settings/admin/apis/${apis.orders.id}`);
|
||||
|
||||
await page.getByRole('button', { name: 'Actions' }).click();
|
||||
await page.getByRole('menuitem', { name: 'Delete' }).click();
|
||||
await page.getByRole('alertdialog').getByRole('button', { name: 'Delete' }).click();
|
||||
|
||||
await expect(page.locator('[data-type="success"]')).toHaveText('API deleted successfully');
|
||||
await page.waitForURL((url) => url.pathname === '/settings/admin/apis');
|
||||
await expect(page.getByRole('row', { name: apis.orders.name })).not.toBeVisible();
|
||||
});
|
||||
|
||||
test('Grant a client user-delegated and client access to API permissions', async ({ page }) => {
|
||||
// Nextcloud has no API access granted by default
|
||||
await page.goto(`/settings/admin/oidc-clients/${oidcClients.nextcloud.id}`);
|
||||
|
||||
@@ -716,6 +716,21 @@ test('Delete OIDC client', async ({ page }) => {
|
||||
await expect(page.getByRole('row', { name: oidcClient.name })).not.toBeVisible();
|
||||
});
|
||||
|
||||
test('Delete OIDC client from the details page', async ({ page }) => {
|
||||
const oidcClient = oidcClients.nextcloud;
|
||||
await page.goto(`/settings/admin/oidc-clients/${oidcClient.id}`);
|
||||
|
||||
await page.getByRole('button', { name: 'Actions' }).click();
|
||||
await page.getByRole('menuitem', { name: 'Delete' }).click();
|
||||
await page.getByRole('button', { name: 'Delete' }).click();
|
||||
|
||||
await expect(page.locator('[data-type="success"]')).toHaveText(
|
||||
'OIDC client deleted successfully'
|
||||
);
|
||||
await page.waitForURL((url) => url.pathname === '/settings/admin/oidc-clients');
|
||||
await expect(page.getByRole('row', { name: oidcClient.name })).not.toBeVisible();
|
||||
});
|
||||
|
||||
test('Filter OIDC clients by PAR requirement', async ({ page, request }) => {
|
||||
const parClient = oidcClients.parClient;
|
||||
|
||||
|
||||
@@ -72,6 +72,19 @@ test('Delete user group', async ({ page }) => {
|
||||
await expect(page.getByRole('row', { name: group.name })).not.toBeVisible();
|
||||
});
|
||||
|
||||
test('Delete user group from the details page', async ({ page }) => {
|
||||
const group = userGroups.developers;
|
||||
await page.goto(`/settings/admin/user-groups/${group.id}`);
|
||||
|
||||
await page.getByRole('button', { name: 'Actions' }).click();
|
||||
await page.getByRole('menuitem', { name: 'Delete' }).click();
|
||||
await page.getByRole('button', { name: 'Delete' }).click();
|
||||
|
||||
await expect(page.locator('[data-type="success"]')).toHaveText('User group deleted successfully');
|
||||
await page.waitForURL((url) => url.pathname === '/settings/admin/user-groups');
|
||||
await expect(page.getByRole('row', { name: group.name })).not.toBeVisible();
|
||||
});
|
||||
|
||||
test('Update user group custom claims', async ({ page }) => {
|
||||
await page.goto(`/settings/admin/user-groups/${userGroups.designers.id}`);
|
||||
|
||||
|
||||
@@ -113,6 +113,37 @@ test('Delete user', async ({ page }) => {
|
||||
).not.toBeVisible();
|
||||
});
|
||||
|
||||
test('Delete user from the details page', async ({ page }) => {
|
||||
await page.goto('/settings/admin/users');
|
||||
await page.getByRole('row', { name: `${users.craig.firstname} ${users.craig.lastname}` }).click();
|
||||
await page.waitForURL(`/settings/admin/users/${users.craig.id}`);
|
||||
|
||||
// A pending edit must not block leaving the page once the user is gone
|
||||
await page.getByLabel('First name').fill('Changed');
|
||||
|
||||
await page.getByRole('button', { name: 'Actions' }).click();
|
||||
await page.getByRole('menuitem', { name: 'Delete' }).click();
|
||||
await page.getByRole('alertdialog').getByRole('button', { name: 'Delete' }).click();
|
||||
|
||||
await expect(page.locator('[data-type="success"]')).toHaveText('User deleted successfully');
|
||||
await page.waitForURL((url) => url.pathname === '/settings/admin/users');
|
||||
await expect(
|
||||
page.getByRole('row', {
|
||||
name: `${users.craig.firstname} ${users.craig.lastname}`
|
||||
})
|
||||
).not.toBeVisible();
|
||||
});
|
||||
|
||||
test('Create one time access token from the details page', async ({ page }) => {
|
||||
await page.goto(`/settings/admin/users/${users.craig.id}`);
|
||||
|
||||
await page.getByRole('button', { name: 'Actions' }).click();
|
||||
await page.getByRole('menuitem', { name: 'Login Code' }).click();
|
||||
await page.getByRole('button', { name: 'Show Code' }).click();
|
||||
|
||||
await expect(page.getByTestId('login-code-link')).toBeVisible();
|
||||
});
|
||||
|
||||
test('Update user', async ({ page }) => {
|
||||
const user = users.craig;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user