import { Permission } from '../auth/permissions.enum'; import { FREIGABE_FIELD_ID, ZAHLUNG_FIELD_ID, entferneGeschuetzteStatusfelder, } from './status-felder.util'; describe('entferneGeschuetzteStatusfelder', () => { const felder = { [FREIGABE_FIELD_ID]: 'freigegeben', [ZAHLUNG_FIELD_ID]: 'bezahlt', 3: 'Rechnungsnummer', }; it('entfernt Freigabe und Zahlung für die Posteingangs-Rolle', () => { expect( entferneGeschuetzteStatusfelder(felder, [Permission.VIEW_INBOX]), ).toEqual({ felder: { 3: 'Rechnungsnummer' }, entfernt: [15, 16] }); }); it('lässt jeder Rolle nur ihr eigenes Statusfeld', () => { expect( entferneGeschuetzteStatusfelder(felder, [ Permission.VIEW_INBOX, Permission.VIEW_FREIGABE, ]).felder, ).toEqual({ 15: 'freigegeben', 3: 'Rechnungsnummer' }); expect( entferneGeschuetzteStatusfelder(felder, [Permission.VIEW_ZAHLUNG]).felder, ).toEqual({ 16: 'bezahlt', 3: 'Rechnungsnummer' }); }); it('lässt Admins alles', () => { expect( entferneGeschuetzteStatusfelder(felder, [Permission.MANAGE_ALL]), ).toEqual({ felder, entfernt: [] }); }); it('kommt mit fehlenden Feldern klar', () => { expect(entferneGeschuetzteStatusfelder(undefined, [])).toEqual({ felder: undefined, entfernt: [], }); }); });