Skip to content

Add Maestro E2E tests for mobile app#20

Merged
gricha merged 6 commits intomainfrom
feature/maestro-mobile-tests
Jan 7, 2026
Merged

Add Maestro E2E tests for mobile app#20
gricha merged 6 commits intomainfrom
feature/maestro-mobile-tests

Conversation

@gricha
Copy link
Copy Markdown
Owner

@gricha gricha commented Jan 7, 2026

Summary

  • Add Maestro test flows for testing the mobile app in CI
  • Add testIDs to SetupScreen and WorkspaceDetailScreen for UI testing
  • Create GitHub Actions workflow that runs on macOS with iOS simulator

Test flows included

  • 01-app-launch.yaml: Tests fresh install shows setup screen with Perry branding
  • 02-setup-validation.yaml: Tests form validation for empty hostname and invalid port

Workflow details

  • Runs on macos-14 runner with Xcode 16.2
  • Builds iOS app for simulator using xcodebuild
  • Installs Maestro CLI and runs test flows
  • Uploads JUnit report and failure screenshots as artifacts
  • Only triggers on changes to mobile/ directory

Test plan

  • Verify workflow runs on PR creation
  • Check if iOS simulator boots correctly
  • Confirm Maestro tests execute and report results

🤖 Generated with Claude Code

gricha and others added 6 commits January 6, 2026 16:41
- Add Maestro test flows for app launch and setup validation
- Add testIDs to SetupScreen and WorkspaceDetailScreen components
- Create GitHub Actions workflow for iOS simulator testing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add expo prebuild step to generate iOS native code in CI
- Update iOS bundle identifier to com.gricha.perry to match local dev setup

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
React Native 0.81 requires Xcode >= 16.1, so we need to select the right
version before running pod install.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
clearText is not a valid Maestro command, the correct command is eraseText.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Only run on push to main, manual trigger, or weekly schedule (not PRs)
- Use Release configuration instead of Debug (no Metro required)
- Add Xcode derived data caching to speed up subsequent builds
- Add debug screenshot step to diagnose test failures

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Need to test the workflow on the PR itself before merging.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@gricha gricha merged commit a28ed3f into main Jan 7, 2026
6 checks passed
@gricha gricha deleted the feature/maestro-mobile-tests branch January 7, 2026 01:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant