This commit implements role-based permission testing and documentation for the beneficiary management system. The role-based UI was already correctly implemented in BeneficiaryMenu.tsx (lines 21-25). This commit adds: - Comprehensive test suite for BeneficiaryMenu role permissions - Test suite for role-based edit modal functionality - Detailed documentation in docs/ROLE_BASED_PERMISSIONS.md - Jest configuration for future testing - testID added to menu button for testing accessibility Role Permission Summary: - Custodian: Full access (all features including remove) - Guardian: Most features (cannot remove beneficiary) - Caretaker: Limited access (dashboard, edit nickname, sensors only) Edit Functionality: - Custodians can edit full profile (name, address, avatar) - Guardians/Caretakers can only edit personal nickname (customName) - Backend validates all permissions server-side for security Tests verify: ✅ Menu items filtered correctly by role ✅ Custodian has full edit capabilities ✅ Guardian/Caretaker limited to nickname editing only ✅ Default role is caretaker (security-first approach) ✅ Navigation routes work correctly 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
21 lines
689 B
JavaScript
21 lines
689 B
JavaScript
module.exports = {
|
|
preset: 'jest-expo',
|
|
testEnvironment: 'node',
|
|
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
|
|
transformIgnorePatterns: [
|
|
'node_modules/(?!((jest-)?react-native|@react-native(-community)?)|expo(nent)?|@expo(nent)?/.*|@expo-google-fonts/.*|react-navigation|@react-navigation/.*|@unimodules/.*|unimodules|sentry-expo|native-base|react-native-svg)',
|
|
],
|
|
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
|
|
moduleNameMapper: {
|
|
'^@/(.*)$': '<rootDir>/$1',
|
|
},
|
|
collectCoverageFrom: [
|
|
'components/**/*.{ts,tsx}',
|
|
'app/**/*.{ts,tsx}',
|
|
'services/**/*.{ts,tsx}',
|
|
'contexts/**/*.{ts,tsx}',
|
|
'!**/*.d.ts',
|
|
'!**/node_modules/**',
|
|
],
|
|
};
|