Date: 2026-06-23
Scheme: Caluru (Caluru.xcodeproj)
Simulator: iPhone 17, iOS 26.0
Tester: Automated + partial simulator verification
| Suite | Tests | Result |
|---|---|---|
CaluruTests / MealPlanGeneratorTests |
18 | PASS |
CaluruTests / ProgressiveProfilingMapperTests |
1 | PASS |
CaluruUITests |
2 | PASS |
CaluruUITestsLaunchTests |
8 configurations | PASS |
| Total | 29 | PASS |
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
# Unit tests
xcodebuild test \
-project Caluru.xcodeproj \
-scheme Caluru \
-destination 'platform=iOS Simulator,name=iPhone 17' \
-only-testing:CaluruTests
# UI tests
xcodebuild test \
-project Caluru.xcodeproj \
-scheme Caluru \
-destination 'platform=iOS Simulator,name=iPhone 17' \
-only-testing:CaluruUITests
# Archive (unsigned smoke test)
xcodebuild archive \
-project Caluru.xcodeproj \
-scheme Caluru \
-destination 'generic/platform=iOS' \
-archivePath /tmp/Caluru.xcarchive \
CODE_SIGN_IDENTITY=- CODE_SIGNING_ALLOWED=NO
| Check | Result |
|---|---|
| Release archive compiles | PASS |
Store validation (-validate-for-store) |
PASS |
| Signed archive on physical device | PENDING — requires distribution certificate in Xcode Organizer |
Note: The legacy
GuruDeSaludscheme referencesGuruDeSaludTests/which is not present in the repo. Use theCaluruscheme for all CI and QA runs.
| Flow | Device | Status | Notes |
|---|---|---|---|
| Fresh install + onboarding (17 screens) | Simulator | PENDING | Requires delete-app reset or -UITesting launch arg; not yet automated end-to-end |
| Sign in with Apple + session restore | Physical | PENDING | Requires physical device + Apple ID |
| Barcode scan → nutrition → log meal | Physical | PENDING | Camera + Open Food Facts API |
| Photo food scan → AI recognition → log | Physical + auth | PENDING | Camera + OpenAI proxy + auth |
| AI Assistant (chat, log meal, create recipe) | Auth required | PENDING | Requires signed-in user |
| Weekly plan → shopping list | Simulator | PENDING | Unit tests cover generator logic; UI flow not manually verified |
| Family (create → invite → accept) | Auth + 2 devices | PENDING | Requires two signed-in devices |
| Gamification (log meals → XP → celebration) | Simulator | PENDING | Celebration overlay logic untested in UI |
| Notifications (enable → receive at time) | Physical | PENDING | APNS does not deliver on simulator |
| Account deletion → clean state → re-onboard | Auth required | PENDING | Destructive flow; needs dedicated test account |
| iCloud sync (device A → device B) | 2 devices + iCloud | PENDING | Requires two physical devices with same Apple ID |
| ID | Severity | Flow | Description |
|---|---|---|---|
| — | — | — | No P0/P1 bugs filed yet; manual matrix incomplete |
Areas with no automated tests today:
AccountResetService)ScanViewModel, barcode + photo)AssistantViewModel)launchArguments support (-UITesting, -resetOnboarding) for simulator onboarding UI tests.TargetCalculator, UsernameValidator, and AccountResetService (pure logic).Manual verification required after configuring App Store Connect products and REVENUECAT_API_KEY:
pro entitlement → main app unlockspro entitlementopenai-proxy returns 402 when user_subscriptions.is_pro is falselogOut(); relaunch requires subscriptionUnit tests added: SubscriptionStateTests (routing: onboarding → loading → paywall → main app).