import { describe, test, it, expect } from 'vitest' import RoleUtils from "~/services/rights/roleUtils"; describe('isA', () => { test('has role', () => { const roles = ['ROLE_PEDAGOGICS_MANAGER', 'ROLE_TEACHER_CORE', 'ROLE_OTHER'] expect(RoleUtils.isA('teacher', roles)).toBeTruthy() }) test('has not role', () => { const roles = ['ROLE_PEDAGOGICS_MANAGER', 'ROLE_TEACHER_CORE', 'ROLE_OTHER'] expect(RoleUtils.isA('financial_manager', roles)).toBeFalsy() }) test('invalid profile name', () => { expect(() => RoleUtils.isA('profile-123', [])).toThrowError('invalid role name') }) test('unknown profile name', () => { const roles = ['ROLE_PEDAGOGICS_MANAGER', 'ROLE_TEACHER_CORE', 'ROLE_OTHER'] expect(RoleUtils.isA('unknown', roles)).toBeFalsy() }) }) describe('filterFunctionRoles', () => { test('exclude roles', () => { const roles = ['ROLE_EVENTS', 'ROLE_COURSES', 'ROLE_TEACHER_CORE', 'ROLE_OTHER'] expect(RoleUtils.filterFunctionRoles(roles)).toEqual(['ROLE_EVENTS', 'ROLE_COURSES']) }) }); describe('transformUnderscoreToHyphen', () => { }) describe('rolesToAbilities', () => { test('exclude roles', () => { const roles = ['ROLE_EVENTS_VIEW', 'ROLE_COURSES', 'ROLE_TEACHER_CORE', 'ROLE_OTHER'] const expected = [ { subject: 'events', action: 'read' }, { subject: 'courses', action: 'manage' }, { subject: 'other', action: 'manage' }, ] expect(RoleUtils.rolesToAbilities(roles)).toEqual(expected) }) })