3 Commits

Author SHA1 Message Date
e34ed5282a Add comprehensive BLE integration tests
Implemented integration tests for BLE functionality covering:
- Connection flow state machine (connecting, discovering, ready)
- Event system (listeners, state changes, connection events)
- WiFi operations (scan, configure, status, reboot)
- Error handling (timeouts, disconnections, concurrent connections)
- Batch operations (multiple device connections, cleanup)
- State machine edge cases (device name, timestamps)

Tests cover both RealBLEManager and MockBLEManager to ensure
consistent behavior across real devices and simulator.

Updated Jest configuration:
- Added expo winter runtime mocks
- Added structuredClone polyfill
- Added React Native module mocks (Platform, PermissionsAndroid, Linking, Alert)
- Updated transform ignore patterns for BLE modules

All 36 tests passing with comprehensive coverage of BLE integration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-31 15:50:54 -08:00
b5014fa680 Add role-based access verification documentation
- Comprehensive verification report with permission matrix
- Implementation summary with code examples
- All role permissions verified and working correctly
- Security properties documented (least privilege, fallbacks)
- API integration verified
- Type safety confirmed
- Update jest.config.js transformIgnorePatterns for better Expo compatibility

Permission Matrix:
- Custodian: full access (6 permissions)
- Guardian: full except remove (5 permissions)
- Caretaker: view-only (3 permissions)

Key files verified:
- components/ui/BeneficiaryMenu.tsx - permission enforcement
- app/(tabs)/beneficiaries/[id]/share.tsx - role management UI
- services/api.ts - backend integration
- __tests__/components/BeneficiaryMenu.test.tsx - test coverage
2026-01-29 12:59:00 -08:00
521ff52344 Add comprehensive testing and documentation for role-based UI permissions
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>
2026-01-29 11:39:18 -08:00