Last updated: 2026-06-23
| Suite | Tests | Result | Command |
|---|---|---|---|
CaluruTests / MealPlanGeneratorTests |
18 | PASS | xcodebuild test -scheme Caluru -only-testing:CaluruTests |
CaluruTests / ProgressiveProfilingMapperTests |
1 | PASS | same |
CaluruUITests |
2 | PASS | xcodebuild test -scheme Caluru -only-testing:CaluruUITests |
CaluruUITestsLaunchTests |
8 (config variants) | PASS | same |
Archive (Release, iphoneos) |
— | PASS | xcodebuild archive -scheme Caluru -destination 'generic/platform=iOS' |
Total unit tests: 19 passed, 0 failed
Total UI tests: 10 passed, 0 failed
Note: The Xcode scheme is Caluru (project was renamed from GuruDeSalud). Use
Caluru.xcodeproj, notGuruDeSalud.xcodeproj.
| Area | Covered by tests? | Test class |
|---|---|---|
| Meal plan generation (determinism, filters, macros) | Yes | MealPlanGeneratorTests |
| Progressive profiling → profile mapping | Yes | ProgressiveProfilingMapperTests |
| Onboarding flow | No | — |
| Auth (Sign in with Apple) | No | — |
| Account deletion | No | — |
| Barcode / photo food scan | No | — |
| AI Assistant actions | No | — |
| Family invites (realtime) | No | — |
| Gamification / XP | No | — |
| Notifications | No | — |
| iCloud sync | No | — |
The empty testExample() stub in CaluruTests was removed. CaluruUITests.testExample() remains as a minimal launch smoke test.
Before tests could run, compile errors were fixed:
requireClient() via a throwing computed client property (FamilyService, GamificationService, ProfileService, RecipeService, AuthService, AccountResetService, OpenAIProxyService).AppLog.swift — Added missing import Foundation for Bundle.main.Execute on a Release build installed from Xcode (or TestFlight) before App Store submission. Mark each row Pass, Fail, or Blocked, and file Linear issues for any P0/P1 failures.
| # | Flow | Steps | Device | Status | Notes |
|---|---|---|---|---|---|
| 1 | Fresh install + onboarding | Delete app → launch → complete Duolingo-style flow (Welcome → Goal → Motivations → Skill → Basics → Metrics → Activity → Diet → Targets → Sign In → Name → Username → Nudge → Paywall) | Simulator OK | Pending | |
| 2 | Sign in with Apple | Onboarding sign-in → kill app → relaunch → session restored | Physical device | Pending | Requires Apple ID; not testable in CI |
| 3 | Barcode scan | Scan product → nutrition data → log meal | Physical device | Pending | Camera required |
| 4 | Photo food scan | Take photo → AI recognition → log meal | Physical device + auth | Pending | OpenAI proxy requires signed-in user |
| 5 | AI Assistant | Chat → log meal action → create recipe action | Auth required | Pending | |
| 6 | Weekly plan | Generate plan → open shopping list | Simulator OK | Pending | Partially covered by unit tests (generator only) |
| 7 | Family | Create family → invite → accept on second device | Auth + 2 devices | Pending | |
| 8 | Gamification | Log meals → earn XP → celebration overlay | Simulator OK | Pending | |
| 9 | Notifications | Enable reminders → receive at scheduled time | Physical device | Pending | Wait for scheduled fire time |
| 10 | Account deletion | Profile → delete account → verify clean state → re-onboard | Auth required | Pending | Destructive; use test Apple ID. Multi-member family cases: QA_DELETE_ACCOUNT_FAMILY.md |
| 10a | Account deletion + family (2 members) | Owner deletes while member remains → family survives + ownership transfer | Auth + 2 accounts | Pending | See QA_DELETE_ACCOUNT_FAMILY Checklist A |
| 10b | Account deletion + family (last member) | Solo / last member deletes → family row deleted | Auth required | Pending | See QA_DELETE_ACCOUNT_FAMILY Checklist B |
| 11 | iCloud sync | Log data on device A → verify on device B | 2 devices + iCloud | Pending | Same Apple ID, iCloud enabled |
| Priority | Definition | Action |
|---|---|---|
| P0 | Crash, data loss, auth broken, cannot complete onboarding | Block submission; fix immediately |
| P1 | Core feature broken (scan, assistant, plan) with workaround | Fix before submission |
| P2 | Cosmetic / edge case | File issue; may ship with known issue |
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
# Unit tests only (fast)
xcodebuild test \
-project Caluru.xcodeproj \
-scheme Caluru \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro' \
-only-testing:CaluruTests
# Full test suite (unit + UI)
xcodebuild test \
-project Caluru.xcodeproj \
-scheme Caluru \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro'
# Archive (verify Release build)
xcodebuild archive \
-project Caluru.xcodeproj \
-scheme Caluru \
-destination 'generic/platform=iOS' \
-archivePath ./build/Caluru.xcarchive
Ensure Config.xcconfig exists (copy from Config.xcconfig.example) with valid SUPABASE_URL and SUPABASE_ANON_KEY.