diff --git a/frontend/src/routes/admin/groups/[id]/+page.svelte b/frontend/src/routes/admin/groups/[id]/+page.svelte index 3705ea67..66462616 100644 --- a/frontend/src/routes/admin/groups/[id]/+page.svelte +++ b/frontend/src/routes/admin/groups/[id]/+page.svelte @@ -25,6 +25,8 @@ $effect(() => { }); const STANDARD_PERMISSIONS: { value: string; label: string }[] = [ + { value: 'READ_ALL', label: 'Nur lesen' }, + { value: 'ANNOTATE_ALL', label: 'Lesen & Annotieren' }, { value: 'WRITE_ALL', label: 'Lesen & Schreiben' } ]; diff --git a/frontend/src/routes/admin/groups/[id]/page.svelte.spec.ts b/frontend/src/routes/admin/groups/[id]/page.svelte.spec.ts index 911ecf57..426ca22c 100644 --- a/frontend/src/routes/admin/groups/[id]/page.svelte.spec.ts +++ b/frontend/src/routes/admin/groups/[id]/page.svelte.spec.ts @@ -41,6 +41,42 @@ describe('Admin edit group page – rendering', () => { .element(page.getByRole('link', { name: /Abbrechen/i })) .toHaveAttribute('href', '/admin/groups'); }); + + it('renders a READ_ALL checkbox in the standard permissions section', async () => { + render(Page, { data: baseData, form: null }); + const cb = document.querySelector( + 'input[type="checkbox"][name="permissions"][value="READ_ALL"]' + ); + expect(cb).not.toBeNull(); + }); + + it('renders an ANNOTATE_ALL checkbox in the standard permissions section', async () => { + render(Page, { data: baseData, form: null }); + const cb = document.querySelector( + 'input[type="checkbox"][name="permissions"][value="ANNOTATE_ALL"]' + ); + expect(cb).not.toBeNull(); + }); + + it('pre-checks READ_ALL when group has it', async () => { + const data = { group: { id: 'g2', name: 'Leser', permissions: ['READ_ALL'] } }; + render(Page, { data, form: null }); + const cb = document.querySelector( + 'input[type="checkbox"][name="permissions"][value="READ_ALL"]' + ); + expect(cb?.checked).toBe(true); + }); + + it('pre-checks ANNOTATE_ALL when group has it', async () => { + const data = { + group: { id: 'g3', name: 'Annotatoren', permissions: ['READ_ALL', 'ANNOTATE_ALL'] } + }; + render(Page, { data, form: null }); + const cb = document.querySelector( + 'input[type="checkbox"][name="permissions"][value="ANNOTATE_ALL"]' + ); + expect(cb?.checked).toBe(true); + }); }); // ─── Unsaved-changes guard ────────────────────────────────────────────────────