import { describe, expect, it } from 'vitest' import { permissionForRequest } from '@evofw/shared' describe('permissionForRequest', () => { it('maps install-links to agents permissions', () => { expect(permissionForRequest('GET', '/api/v1/install-links')).toBe( 'fw:agents:read', ) expect(permissionForRequest('POST', '/api/v1/install-links')).toBe( 'fw:agents:write', ) }) it('maps agent stats endpoints to stats permission, not agents', () => { expect( permissionForRequest('GET', '/api/v1/agents/a1/stats'), ).toBe('fw:stats:read') expect( permissionForRequest('GET', '/api/v1/agents/a1/blocked-ips'), ).toBe('fw:stats:read') // reset is destructive — stays under agents write expect( permissionForRequest('POST', '/api/v1/agents/a1/stats/reset'), ).toBe('fw:agents:write') expect(permissionForRequest('GET', '/api/v1/agents')).toBe('fw:agents:read') }) it('maps integrations to lists read / settings admin', () => { expect( permissionForRequest('GET', '/api/v1/integrations/evobgp/communities'), ).toBe('fw:lists:read') expect( permissionForRequest('POST', '/api/v1/integrations/evobgp/refresh'), ).toBe('fw:settings:admin') }) })