import { Permission } from '../auth/permissions.enum'; import { POSTEINGANG_TAG_ID, darfDokumentBearbeiten, dokumentKurzinfo, } from './dokument-zugriff.util'; const MANUELL = 6; describe('darfDokumentBearbeiten', () => { it('Posteingang-Rolle: nur Dokumente mit Posteingang-Tag', () => { const rechte = [Permission.VIEW_INBOX]; expect( darfDokumentBearbeiten([POSTEINGANG_TAG_ID, 9], rechte, MANUELL), ).toBe(true); expect(darfDokumentBearbeiten([9], rechte, MANUELL)).toBe(false); expect(darfDokumentBearbeiten([MANUELL], rechte, MANUELL)).toBe(false); }); it('Buchhaltung: Dokumente mit Manuell-Tag', () => { const rechte = [Permission.PROCESS_MANUALLY]; expect(darfDokumentBearbeiten([MANUELL], rechte, MANUELL)).toBe(true); expect(darfDokumentBearbeiten([POSTEINGANG_TAG_ID], rechte, MANUELL)).toBe( false, ); }); it('Admins dürfen alles', () => { expect(darfDokumentBearbeiten([], [Permission.MANAGE_ALL], MANUELL)).toBe( true, ); }); it('andere Rollen und fehlende Tags: nein', () => { expect( darfDokumentBearbeiten( [POSTEINGANG_TAG_ID], [Permission.VIEW_FREIGABE], MANUELL, ), ).toBe(false); expect( darfDokumentBearbeiten(undefined, [Permission.VIEW_INBOX], MANUELL), ).toBe(false); }); }); describe('dokumentKurzinfo', () => { it('liefert nur Kennung, Titel, ASN und Datum – keinen OCR-Volltext', () => { const doc = { id: 5, title: 'Rechnung', archive_serial_number: 42, created: '2026-01-02', content: 'IBAN DE00 …', owner: 3, custom_fields: [{ field: 15, value: 'x' }], notes: [{ note: 'intern' }], }; expect(dokumentKurzinfo(doc)).toEqual({ id: 5, title: 'Rechnung', archive_serial_number: 42, created: '2026-01-02', }); }); });