mirror of
https://github.com/nikdoof/pocket-id.git
synced 2025-12-14 07:12:19 +00:00
tests: add user group tests
This commit is contained in:
@@ -56,6 +56,30 @@ func (s *TestService) SeedDatabase() error {
|
||||
}
|
||||
}
|
||||
|
||||
userGroups := []model.UserGroup{
|
||||
{
|
||||
Base: model.Base{
|
||||
ID: "4110f814-56f1-4b28-8998-752b69bc97c0e",
|
||||
},
|
||||
Name: "developers",
|
||||
FriendlyName: "Developers",
|
||||
Users: []model.User{users[0], users[1]},
|
||||
},
|
||||
{
|
||||
Base: model.Base{
|
||||
ID: "adab18bf-f89d-4087-9ee1-70ff15b48211",
|
||||
},
|
||||
Name: "designers",
|
||||
FriendlyName: "Designers",
|
||||
Users: []model.User{users[0]},
|
||||
},
|
||||
}
|
||||
for _, group := range userGroups {
|
||||
if err := tx.Create(&group).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
oidcClients := []model.OidcClient{
|
||||
{
|
||||
Base: model.Base{
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
let success = true;
|
||||
await userGroupService
|
||||
.update(userGroup.id, updatedUserGroup)
|
||||
.then(() => toast.success('User Group updated successfully'))
|
||||
.then(() => toast.success('User group updated successfully'))
|
||||
.catch((e) => {
|
||||
axiosErrorToast(e);
|
||||
success = false;
|
||||
|
||||
@@ -38,3 +38,20 @@ export const oidcClients = {
|
||||
secondCallbackUrl: 'http://pingvin.share/auth/callback2'
|
||||
}
|
||||
};
|
||||
|
||||
export const userGroups = {
|
||||
developers: {
|
||||
id: '4110f814-56f1-4b28-8998-752b69bc97c0e',
|
||||
friendlyName: 'Developers',
|
||||
name: 'developers'
|
||||
},
|
||||
designers: {
|
||||
id: 'adab18bf-f89d-4087-9ee1-70ff15b48211',
|
||||
friendlyName: 'Designers',
|
||||
name: 'designers'
|
||||
},
|
||||
humanResources: {
|
||||
friendlyName: 'Human Resources',
|
||||
name: 'human_resources'
|
||||
}
|
||||
};
|
||||
|
||||
74
frontend/tests/user-group.spec.ts
Normal file
74
frontend/tests/user-group.spec.ts
Normal file
@@ -0,0 +1,74 @@
|
||||
import test, { expect } from '@playwright/test';
|
||||
import { userGroups, users } from './data';
|
||||
import { cleanupBackend } from './utils/cleanup.util';
|
||||
|
||||
test.beforeEach(cleanupBackend);
|
||||
|
||||
test('Create user group', async ({ page }) => {
|
||||
await page.goto('/settings/admin/user-groups');
|
||||
const group = userGroups.humanResources;
|
||||
|
||||
await page.getByRole('button', { name: 'Add Group' }).click();
|
||||
await page.getByLabel('Friendly Name').fill(group.friendlyName);
|
||||
|
||||
await page.getByRole('button', { name: 'Save' }).click();
|
||||
|
||||
await expect(page.getByRole('status')).toHaveText('User group created successfully');
|
||||
expect(page.url()).toMatch(/\/settings\/admin\/user-groups\/[a-f0-9-]+/);
|
||||
|
||||
await expect(page.getByLabel('Friendly Name')).toHaveValue(group.friendlyName);
|
||||
await expect(page.getByLabel('Name', { exact: true })).toHaveValue(group.name);
|
||||
});
|
||||
|
||||
test('Edit user group', async ({ page }) => {
|
||||
await page.goto('/settings/admin/user-groups');
|
||||
const group = userGroups.developers;
|
||||
|
||||
await page.getByRole('row', { name: group.name }).getByRole('button').click();
|
||||
await page.getByRole('menuitem', { name: 'Edit' }).click();
|
||||
|
||||
await page.getByLabel('Friendly Name').fill('Developers updated');
|
||||
|
||||
await expect(page.getByLabel('Name', { exact: true })).toHaveValue(group.name);
|
||||
|
||||
await page.getByLabel('Name', { exact: true }).fill('developers_updated');
|
||||
|
||||
await page.getByRole('button', { name: 'Save' }).nth(0).click();
|
||||
|
||||
await expect(page.getByRole('status')).toHaveText('User group updated successfully');
|
||||
await expect(page.getByLabel('Friendly Name')).toHaveValue('Developers updated');
|
||||
await expect(page.getByLabel('Name', { exact: true })).toHaveValue('developers_updated');
|
||||
});
|
||||
|
||||
test('Update user group users', async ({ page }) => {
|
||||
const group = userGroups.designers;
|
||||
await page.goto(`/settings/admin/user-groups/${group.id}`);
|
||||
|
||||
await page.getByRole('row', { name: users.tim.email }).getByRole('checkbox').click();
|
||||
await page.getByRole('row', { name: users.craig.email }).getByRole('checkbox').click();
|
||||
|
||||
await page.getByRole('button', { name: 'Save' }).nth(1).click();
|
||||
|
||||
await expect(page.getByRole('status')).toHaveText('Users updated successfully');
|
||||
|
||||
await page.reload();
|
||||
|
||||
await expect(
|
||||
page.getByRole('row', { name: users.tim.email }).getByRole('checkbox')
|
||||
).toHaveAttribute('data-state', 'unchecked');
|
||||
await expect(
|
||||
page.getByRole('row', { name: users.craig.email }).getByRole('checkbox')
|
||||
).toHaveAttribute('data-state', 'checked');
|
||||
});
|
||||
|
||||
test('Delete user group', async ({ page }) => {
|
||||
const group = userGroups.developers;
|
||||
await page.goto('/settings/admin/user-groups');
|
||||
|
||||
await page.getByRole('row', { name: group.name }).getByRole('button').click();
|
||||
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.getByRole('row', { name: group.name })).not.toBeVisible();
|
||||
});
|
||||
Reference in New Issue
Block a user