feat: explore tab, React Query data layer, programs, sync, analytics, testing infrastructure

- Replace browse tab with Supabase-connected explore tab with filters
- Add React Query for data fetching with loading states
- Add 3 structured programs with weekly progression
- Add Supabase anonymous auth sync service
- Add PostHog analytics with screen tracking and events
- Add comprehensive test strategy (Vitest + Maestro E2E)
- Add RevenueCat subscription system with DEV simulation
- Add i18n translations for new screens (EN/FR/DE/ES)
- Add data deletion modal, sync consent modal
- Add assessment screen and program routes
- Add GitHub Actions CI workflow
- Update activity store with sync integration
This commit is contained in:
Millian Lamiaux
2026-03-24 12:04:48 +01:00
parent 8703c484e8
commit cd065d07c3
138 changed files with 26819 additions and 1043 deletions

View File

@@ -0,0 +1,82 @@
# Activity Tab Flow Test
# Tests the activity/stats dashboard screen
# Prerequisite: User must have completed onboarding
appId: com.millianlmx.tabatafit
name: Activity Tab
---
# Start from home screen
- assertVisible: "program-card-upper-body"
# Navigate to Activity tab
- tapOn:
text: "Activity"
optional: true
- tapOn:
id: "activity-tab"
optional: true
# Verify activity screen loaded — check for stats elements
- assertVisible:
text: ".*Activity.*"
timeout: 5000
# Check for streak display
- assertVisible:
text: ".*streak.*"
timeout: 3000
optional: true
# Check for workout count stats
- assertVisible:
text: ".*workout.*"
timeout: 3000
optional: true
# Check for calories display
- assertVisible:
text: ".*cal.*"
timeout: 3000
optional: true
# Scroll down to see weekly chart or history
- scroll:
direction: DOWN
duration: 500
# Check for weekly chart or activity history section
- assertVisible:
text: ".*week.*"
timeout: 3000
optional: true
# Scroll down further to see history
- scroll:
direction: DOWN
duration: 500
# Check for achievement badges if present
- assertVisible:
text: ".*achievement.*"
timeout: 3000
optional: true
# Scroll back to top
- scroll:
direction: UP
duration: 1000
# Navigate back to Home
- tapOn:
text: "Home"
optional: true
- tapOn:
id: "home-tab"
optional: true
# Verify home screen
- assertVisible:
id: "program-card-upper-body"
timeout: 5000
optional: true