new file: .env.local modified: .gitignore new file: docs/mock-audit.md modified: eslint.config.js modified: package-lock.json modified: package.json deleted: src/App.css modified: src/App.jsx deleted: src/assets/react.svg deleted: src/assets/vite.svg new file: src/components/RichTextEditor.jsx modified: src/components/calendar/AgendaMonthlyView.jsx modified: src/components/calendar/AgendaWeeklyView.jsx modified: src/components/ui.jsx modified: src/config/api.js modified: src/data/mockData.js new file: src/data/reportTemplates.js modified: src/hooks/useAgenda.js modified: src/mappers/appointmentMapper.js modified: src/pages/AgendaPage.jsx modified: src/pages/MedicalRecordsPage.jsx modified: src/pages/MessagesPage.jsx modified: src/pages/PatientsPage.jsx modified: src/pages/ProfilePage.jsx modified: src/pages/ReportsPage.jsx modified: src/pages/UsersPage.jsx modified: src/pages/VisitsPage.jsx modified: src/repositories/patientRepository.js modified: src/repositories/profileRepository.js modified: src/repositories/userRepository.js deleted: test.mjs deleted: test2.mjs deleted: test3.mjs deleted: test4.mjs deleted: test5.mjs new file: tests/mappers.test.mjs new file: tests/patientRepository.test.mjs new file: tests/permissions.test.mjs new file: tests/repositoryUtils.test.mjs
31 lines
1.2 KiB
JavaScript
31 lines
1.2 KiB
JavaScript
import assert from 'node:assert/strict'
|
|
import test from 'node:test'
|
|
|
|
import { canAccess, hasCapability, normalizeRole } from '../src/config/permissions.js'
|
|
|
|
test('normaliza aliases de perfis conhecidos', () => {
|
|
assert.equal(normalizeRole('doctor'), 'medico')
|
|
assert.equal(normalizeRole('Gestao / Coordenacao'), 'gestor')
|
|
assert.equal(normalizeRole('administrator'), 'admin')
|
|
assert.equal(normalizeRole('secretary'), 'secretaria')
|
|
})
|
|
|
|
test('medico acessa pacientes e prontuario, mas nao painel ou analytics', () => {
|
|
assert.equal(canAccess('medico', '/pacientes'), true)
|
|
assert.equal(canAccess('medico', '/prontuario/123'), true)
|
|
assert.equal(canAccess('medico', '/inicio'), false)
|
|
assert.equal(canAccess('medico', '/relatorios'), false)
|
|
})
|
|
|
|
test('secretaria acessa agenda e pacientes, mas nao painel', () => {
|
|
assert.equal(canAccess('secretaria', '/agenda'), true)
|
|
assert.equal(canAccess('secretaria', '/pacientes'), true)
|
|
assert.equal(canAccess('secretaria', '/inicio'), false)
|
|
})
|
|
|
|
test('roles administrativos mantem capacidades criticas', () => {
|
|
assert.equal(hasCapability('admin', 'manageUsers'), true)
|
|
assert.equal(hasCapability('gestor', 'hardDeletePatients'), true)
|
|
assert.equal(hasCapability('medico', 'hardDeletePatients'), false)
|
|
})
|