test(admin): expand admin/groups/[id] page coverage
Adds banner-hidden defaults, all-8-permission-checkboxes count, empty permissions array. 4 new tests covering ~6 branches. Refs #496. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -87,4 +87,39 @@ describe('admin/groups/[id] page', () => {
|
|||||||
await expect.element(page.getByRole('button', { name: /löschen/i })).toBeVisible();
|
await expect.element(page.getByRole('button', { name: /löschen/i })).toBeVisible();
|
||||||
await expect.element(page.getByRole('button', { name: /speichern/i })).toBeVisible();
|
await expect.element(page.getByRole('button', { name: /speichern/i })).toBeVisible();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('does not render success banner when form is undefined', async () => {
|
||||||
|
render(AdminGroupEditPage, { props: { data: { group: baseGroup() }, form: undefined } });
|
||||||
|
|
||||||
|
const banner = document.querySelector('.bg-green-50');
|
||||||
|
expect(banner).toBeNull();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('does not render error-banner div when form.success is true (success path only)', async () => {
|
||||||
|
render(AdminGroupEditPage, {
|
||||||
|
props: { data: { group: baseGroup() }, form: { success: true } }
|
||||||
|
});
|
||||||
|
|
||||||
|
// Error banner is the <div> with bg-red-50 — the delete button is also red but is a button
|
||||||
|
const errorBanner = document.querySelector('div.bg-red-50');
|
||||||
|
expect(errorBanner).toBeNull();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('renders all 8 permission checkboxes (4 standard + 4 admin)', async () => {
|
||||||
|
render(AdminGroupEditPage, { props: { data: { group: baseGroup() }, form: undefined } });
|
||||||
|
|
||||||
|
const checkboxes = document.querySelectorAll('input[name="permissions"]');
|
||||||
|
expect(checkboxes.length).toBe(8);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('handles a group with empty permissions array', async () => {
|
||||||
|
render(AdminGroupEditPage, {
|
||||||
|
props: { data: { group: baseGroup({ permissions: [] }) }, form: undefined }
|
||||||
|
});
|
||||||
|
|
||||||
|
const checkboxes = Array.from(
|
||||||
|
document.querySelectorAll('input[name="permissions"]')
|
||||||
|
) as HTMLInputElement[];
|
||||||
|
expect(checkboxes.every((c) => !c.checked)).toBe(true);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user