Athena — roomy-mobile/archive/changes/2025-12-24-add-maestro-screenshot-automation/tasks.md

1. Firebase Emulator Seed Script

  • [ ] 1.1 Create roomy-firebase/scripts/seed-emulator.js with firebase-admin SDK setup
  • [ ] 1.2 Implement user creation (Emma, James, Sofia, Alex with demo emails/passwords)
  • [ ] 1.3 Implement household creation ("The Downtown Apartment" with all 4 members)
  • [ ] 1.4 Implement cleaning tasks data (varied states: pending, completed, overdue)
  • [ ] 1.5 Implement shopping lists data (list with items in various states)
  • [ ] 1.6 Implement payments data (expense splits between members)
  • [ ] 1.7 Implement inbox notifications (sample invites/messages)
  • [ ] 1.8 Add npm script in roomy-firebase/package.json for seed execution
  • [ ] 1.9 Verify seed script produces identical data on repeated runs

2. Maestro Common Flows

  • [ ] 2.1 Create .maestro/common/login.yaml with seeded account credentials
  • [ ] 2.2 Create .maestro/common/wait-for-load.yaml helper for animation/data waits
  • [ ] 2.3 Create .maestro/common/dismiss-keyboard.yaml helper

3. Maestro Screen Flows (22 screens)

Auth Screens:

  • [ ] 3.1 Create .maestro/screens/auth/01-login.yaml (auth_view.dart)
  • [ ] 3.2 Create .maestro/screens/auth/02-accept-privacy.yaml (accept_privacy_view.dart)
  • [ ] 3.3 Create .maestro/screens/auth/03-create-username.yaml (create_username_view.dart)
  • [ ] 3.4 Create .maestro/screens/auth/04-verify-email.yaml (verify_email_view.dart)

Household Screens:

  • [ ] 3.5 Create .maestro/screens/households/05-home.yaml (home_view.dart)
  • [ ] 3.6 Create .maestro/screens/households/06-join-household.yaml (join_household_view.dart)
  • [ ] 3.7 Create .maestro/screens/households/07-manage-household.yaml (manage_household_view.dart)

Cleaning Screens:

  • [ ] 3.8 Create .maestro/screens/cleaning/08-cleaning-tasks.yaml (cleaning_tasks_view.dart)
  • [ ] 3.9 Create .maestro/screens/cleaning/09-manage-cleaning-task.yaml (manage_cleaning_task_view.dart)

Shopping Screens:

  • [ ] 3.10 Create .maestro/screens/shopping/10-shopping.yaml (shopping_view.dart)
  • [ ] 3.11 Create .maestro/screens/shopping/11-shopping-list.yaml (shopping_list_view.dart)
  • [ ] 3.12 Create .maestro/screens/shopping/12-edit-shopping-list.yaml (edit_shopping_list_view.dart)

Payment Screens:

  • [ ] 3.13 Create .maestro/screens/payments/13-payments.yaml (payments_view.dart)
  • [ ] 3.14 Create .maestro/screens/payments/14-all-payments.yaml (all_payments_view.dart)
  • [ ] 3.15 Create .maestro/screens/payments/15-manage-payment.yaml (manage_payment_view.dart)

Inbox Screens:

  • [ ] 3.16 Create .maestro/screens/inbox/16-inbox.yaml (inbox_view.dart)
  • [ ] 3.17 Create .maestro/screens/inbox/17-message.yaml (message_view.dart)

Core Screens:

  • [ ] 3.18 Create .maestro/screens/core/18-settings.yaml (settings_view.dart)
  • [ ] 3.19 Create .maestro/screens/core/19-whats-new.yaml (whats_new_view.dart)
  • [ ] 3.20 Create .maestro/screens/core/20-welcome-home.yaml (welcome_home_view.dart)
  • [ ] 3.21 Create .maestro/screens/core/21-shell.yaml (shell_view.dart - bottom nav)
  • [ ] 3.22 Create .maestro/screens/core/22-oops.yaml (oops_view.dart - error screen)

4. Maestro Orchestrator Flow

  • [ ] 4.1 Create .maestro/screenshot-all.yaml that runs all screen flows in sequence
  • [ ] 4.2 Add takeScreenshot command with ${OUTPUT_DIR} variable to each screen flow
  • [ ] 4.3 Add waitForAnimationToEnd before each screenshot capture
  • [ ] 4.4 Verify orchestrator runs successfully on single device

5. Shell Script Orchestration

  • [ ] 5.1 Create scripts/capture-screenshots.sh with device/language matrix
  • [ ] 5.2 Implement iOS simulator locale switching via xcrun simctl spawn
  • [ ] 5.3 Implement Android emulator locale switching via adb shell setprop
  • [ ] 5.4 Implement output directory creation per device/language
  • [ ] 5.5 Add Firebase emulator startup/seed logic
  • [ ] 5.6 Add Firebase emulator shutdown on completion
  • [ ] 5.7 Make script executable and test end-to-end

6. Makefile Integration

  • [ ] 6.1 Add screenshots target to Makefile
  • [ ] 6.2 Add screenshots-ios target for iOS-only capture
  • [ ] 6.3 Add screenshots-android target for Android-only capture
  • [ ] 6.4 Document targets in Makefile comments

7. Verification

  • [ ] 7.1 Run full screenshot suite on iOS 6.9" + EN
  • [ ] 7.2 Run full screenshot suite on iOS 6.9" + NL
  • [ ] 7.3 Verify screenshot dimensions match App Store requirements
  • [ ] 7.4 Run suite twice and confirm identical output (determinism check)
  • [ ] 7.5 Document any manual steps in README or comments

Reacties

Nog geen reacties