import { applyPermissionSettingsList } from '../permissions.js'; describe('applyPermissionSettingsList', () => { it('applies permission settings in order and inherits intermediate values', () => { const result = applyPermissionSettingsList([ { permissions: { user: { info: true, edit: false, delete: true }, printer: { info: true }, }, }, { permissions: { user: { edit: true, delete: null }, printer: { info: null, delete: false }, }, }, ]); expect(result).toEqual({ user: { info: true, edit: true, delete: true }, printer: { info: true, delete: false }, }); }); it('returns an empty object when nothing is explicitly set', () => { expect(applyPermissionSettingsList([{ permissions: { user: { info: null } } }])).toEqual({}); }); it('applies group permissions first, then user permission settings', () => { const result = applyPermissionSettingsList([ { permissions: { user: { info: true, edit: false }, printer: { info: true }, }, }, { permissions: { user: { delete: true }, }, }, { permissions: { user: { edit: true }, printer: { info: false }, }, }, ]); expect(result).toEqual({ user: { info: true, edit: true, delete: true }, printer: { info: false }, }); }); });