UNPKG

payload

Version:

Node, React, Headless CMS and Application Framework built on Next.js

78 lines (77 loc) 3.03 kB
import { getFieldPermissions } from './getFieldPermissions.js'; import { describe, expect, it } from 'vitest'; describe('getFieldPermissions with collection fallback', ()=>{ const mockField = { name: 'testField', type: 'text' }; describe('fallback to collection permissions', ()=>{ it('should enable read-only mode when field permissions are missing but collection has read access', ()=>{ const fieldPermissions = {} // Empty/sanitized field permissions ; const collectionPermissions = { read: true, fields: {} }; const result = getFieldPermissions({ field: mockField, operation: 'update', parentName: '', permissions: fieldPermissions, collectionPermissions }); expect(result.read).toBe(true); expect(result.operation).toBe(false); // Should be read-only expect(result.permissions).toEqual({ read: true }); }); it('should respect existing field permissions when they exist', ()=>{ const fieldPermissions = true // All permissions are true ; const collectionPermissions = { read: true, fields: {} }; const result = getFieldPermissions({ field: mockField, operation: 'update', parentName: '', permissions: fieldPermissions }); expect(result.read).toBe(true); expect(result.operation).toBe(true); // Should have operation permission expect(result.permissions).toBe(true); }); it('should not provide access when neither field nor collection has read permission', ()=>{ const fieldPermissions = {}; const collectionPermissions = { // No read permission at collection level fields: {} }; const result = getFieldPermissions({ field: mockField, operation: 'update', parentName: '', permissions: fieldPermissions, collectionPermissions }); expect(result.read).toBe(false); expect(result.operation).toBe(false); }); it('should work without collection permissions (backward compatibility)', ()=>{ const fieldPermissions = true // All permissions ; const result = getFieldPermissions({ field: mockField, operation: 'update', parentName: '', permissions: fieldPermissions }); expect(result.read).toBe(true); expect(result.operation).toBe(true); expect(result.permissions).toBe(true); }); }); }); //# sourceMappingURL=getFieldPermissions.spec.js.map