Millian Lamiaux 4fa8be600c test: add QA coverage — access unit tests, VideoPlayer snapshots, Maestro E2E flows, testIDs
- Add testIDs to explore, workout detail, and collection detail screens
- Add testID prop to VideoPlayer component
- Create access service unit tests (isFreeWorkout, canAccessWorkout)
- Create VideoPlayer rendering snapshot tests (preview/background modes)
- Create Maestro E2E flows: explore-freemium, collection-detail
- Update tab-navigation flow with Explore screen assertions
- Update profile-settings flow with real activity stat assertions
- Update all-tests suite to include new flows
2026-03-24 12:40:02 +01:00
2026-02-17 17:34:06 +01:00
2026-02-17 17:34:06 +01:00

TabataFit

Apple Fitness+ for Tabata — The Premium HIIT Experience

Expo TypeScript License Tests Coverage

Vision

TabataFit est l'Apple Fitness+ du Tabata. Une expérience premium, video-first, guidée par des coachs, qui transforme 4 minutes d'exercice en une expérience de fitness immersive.

Features

  • 🎬 Video-led workouts — HD video demonstrations by professional trainers
  • ⏱️ Smart timer — Tabata timer with work/rest phases
  • 🔥 Burn Bar — Compare your calories with the community
  • 📊 Activity tracking — Streaks, stats, and trends
  • 🎵 Music sync — Curated playlists for each workout
  • Apple Watch — Heart rate and activity rings

Tech Stack

  • Framework: Expo SDK 52
  • Navigation: Expo Router v3
  • State: Zustand
  • Video: expo-av (HLS streaming)
  • Payments: RevenueCat
  • Analytics: PostHog

Getting Started

# Install dependencies
npm install

# Start development server
npx expo start

# Run on device (scan QR with Expo Go)

Documentation

Document Description
PRD v2.0 Product Requirements
PDD v2.0 Product Design
BDSD v2.0 Brand Design

Project Structure

src/
  features/
    home/        # Home tab
    workouts/    # Workouts browser
    player/      # Video player + timer
    activity/    # Stats & history
    browse/      # Filters & trainers
    profile/     # User settings
  shared/
    components/  # Reusable UI
    hooks/       # Custom hooks
    constants/   # Design tokens
app/             # Expo Router routes

Testing

# Unit tests with coverage
npm run test:coverage

# Component render tests
npm run test:render

# All unit + render tests
npm test && npm run test:render

# Maestro E2E (requires Expo dev server + simulator)
npm run test:maestro

# Admin-web tests
cd admin-web && npm test           # Unit tests
cd admin-web && npm run test:e2e   # Playwright E2E

Test Coverage

Layer Target Tests
Stores 80%+ playerStore, activityStore, userStore, programStore
Services 80%+ analytics, music, purchases, sync
Hooks 70%+ useTimer, useHaptics, useAudio, usePurchases, useMusicPlayer, useNotifications, useSupabaseData
Components 50%+ StyledText, VideoPlayer, WorkoutCard, GlassCard, CollectionCard, modals, Skeleton
Data 80%+ achievements, collections, programs, trainers, workouts

E2E Tests

  • Mobile (Maestro): Onboarding, tab navigation, program browse, workout player, activity, profile/settings
  • Admin Web (Playwright): Auth, navigation, workouts CRUD, trainers, collections

License

Proprietary — All rights reserved.


Built with ❤️ for HIIT lovers

Description
No description provided
Readme 1.8 MiB
Languages
TypeScript 94.5%
JavaScript 3.3%
PLpgSQL 1.7%
CSS 0.3%
Shell 0.2%