Comprehensive checklist for testing CloudKit sharing functionality in TheCompanyApp.
Required Resources
Devices/Users:
✅ User A (Owner): iPhone/iPad with iCloud account A
✅ User B (Participant): iPhone/iPad with iCloud account B (different Apple ID)
✅ User C (Participant 2): Optional, for multi-participant testing
✅ Network: Wi-Fi connection for both devices
Preparation:
Sign in to iCloud on both devices
Install TheCompanyApp (TestFlight or Debug)
Enable iCloud for TheCompanyApp in Settings
Verify internet connectivity
Sharing Flow Tests
Test 1: Create and Share Company
User A (Owner):
User B (Participant):
Test 2: Verify Shared Data
User A (Owner):
User B (Participant):
Result: All data synced correctly.
Test 3: Participant Creates Data
User B (Participant):
User A (Owner):
Result: Participant edits sync to owner.
Test 4: Owner Creates Data (Post-Share)
User A (Owner):
User B (Participant):
Result: Owner edits sync to participant.
Test 5: Concurrent Edits
Setup: Both users edit same order at the same time (offline).
User A (Owner):
User B (Participant):
Both Users:
Verify:
Test 6: Delete Shared Object
User A (Owner):
User B (Participant):
User B (Participant):
User A (Owner):
Result: Deletions sync bidirectionally.
Permission Tests
Test 7: Read-Only Permission
User A (Owner):
User B (Participant):
Result: Read-only permission enforced.
Test 8: Read-Write Permission
User A (Owner):
User B (Participant):
Result: Read-write permission works.
Test 9: AccessControl Integration
User A (Owner):
User B (Participant):
Result: AccessControl permissions enforced.
Multi-Device Tests
Test 10: Owner Multi-Device Sync
User A - iPhone:
User A - iPad (same Apple ID):
User A - iPad:
User A - iPhone:
Result: Owner's data syncs across their devices.
Test 11: Participant Multi-Device Sync
User B - iPhone:
User B - iPad (same Apple ID as User B iPhone):
Result: Participant's data syncs across their devices.
Test 12: Remove Participant
User A (Owner):
User B (Participant):
Result: Participant removed successfully.
Test 13: Stop Sharing
User A (Owner):
User B (Participant):
User A (Owner):
Result: Share stopped, company reverts to owner-only.
Test 14: Delete Shared Company
User A (Owner):
User B (Participant):
User A (Owner):
Result: Deletion cascades to all participants.
Test 15: Offline Share Acceptance
User B (Participant):
User B (Participant):
Result: Offline handling works.
Test 16: UserPass Isolation
User A (Owner):
User B (Participant):
Verify Isolation:
Result: UserPass not shared, each user has private credentials.
Test 17: Large Data Sync
User A (Owner):
User B (Participant):
Performance:
Result: Large datasets sync correctly.
Pass Criteria: All checkboxes checked with expected results.
Failure Handling:
Document failed test case
Report issue with details
Related: Troubleshooting, Debugging Logs, TestFlight Flow