Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
262f9d7
Add Maestro e2e testing
transphorm Aug 4, 2025
c4d68fa
Run Maestro flows in parallel
transphorm Aug 4, 2025
6c56e26
Fix mobile e2e workflow
transphorm Aug 4, 2025
31f77f1
Fix e2e script flow path
transphorm Aug 4, 2025
0fbd2d4
prettier
transphorm Aug 4, 2025
07b4d77
fix
transphorm Aug 4, 2025
19ffd83
prettier
transphorm Aug 4, 2025
e6d40c2
standardize yml files and new formatting commands
transphorm Aug 4, 2025
f3b22f7
fix ndk
transphorm Aug 4, 2025
ae43a43
fix exclusions
transphorm Aug 4, 2025
6555bdc
use double quotes for yml files
transphorm Aug 4, 2025
73150e3
feedback
transphorm Aug 4, 2025
aec5c70
fixes
transphorm Aug 4, 2025
ab853c9
fixes
transphorm Aug 4, 2025
432f882
fix
transphorm Aug 4, 2025
643ed8c
fix ios job
transphorm Aug 4, 2025
d3ae090
unneeded
transphorm Aug 4, 2025
6c8a3f7
fix workflows
transphorm Aug 4, 2025
09ba2ea
fix launch workflow
transphorm Aug 4, 2025
55a251a
fix
transphorm Aug 4, 2025
dc835ff
fix pipeline
transphorm Aug 4, 2025
bb69e7d
workflow fixes
transphorm Aug 4, 2025
c40e2d6
install app to emulators
transphorm Aug 4, 2025
3988386
better logging
transphorm Aug 4, 2025
33c63e1
save current version of test script
transphorm Aug 4, 2025
5585583
android works. ios wip. update locks
transphorm Aug 4, 2025
16de329
fix pipelines
transphorm Aug 4, 2025
4204459
cr feedback
transphorm Aug 4, 2025
e84dc99
fix android e2e test
transphorm Aug 4, 2025
1fbc1c7
Split mobile e2e workflow by platform (#842)
transphorm Aug 6, 2025
167cb29
feedback
transphorm Aug 6, 2025
decd0d7
Merge branch 'dev' into codex/remove-detox-and-configure-maestro-cli
transphorm Aug 6, 2025
dc7e295
fixes
transphorm Aug 6, 2025
28c4b19
ignore for now
transphorm Aug 6, 2025
8faf185
ignore
transphorm Aug 6, 2025
de372e0
fix tests
transphorm Aug 6, 2025
c0efd03
fix ios simulator booting
transphorm Aug 6, 2025
11cda72
fix ios test
transphorm Aug 6, 2025
cfa68b2
shutdown after run
transphorm Aug 6, 2025
c2d5498
fix ios test
transphorm Aug 6, 2025
318b943
better timing
transphorm Aug 6, 2025
fb9a1c4
increase ios timeout
transphorm Aug 6, 2025
367c52f
fix both flows
transphorm Aug 6, 2025
b959cc2
fix pipeline
transphorm Aug 6, 2025
81f68dc
combine command
transphorm Aug 6, 2025
1245592
fix ios
transphorm Aug 6, 2025
713ce7a
break up build steps for better caching
transphorm Aug 6, 2025
ef39f66
remove cache
transphorm Aug 6, 2025
95ec9a7
fix ios and android test pipelines
transphorm Aug 6, 2025
78bc296
update logic
transphorm Aug 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .github/workflows/mobile-e2e.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Mobile E2E

on:
push:
paths:
- 'app/**'
- '.github/workflows/mobile-e2e.yml'
pull_request:
paths:
- 'app/**'
- '.github/workflows/mobile-e2e.yml'

jobs:
android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
- run: corepack enable
- run: yarn install
- name: Install Maestro
run: |
curl -Ls https://get.maestro.mobile.dev | bash
echo "$HOME/.maestro/bin" >> $GITHUB_PATH
- name: Run Android flow
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 34
arch: x86_64
script: |
cd app
yarn build:deps
yarn test:e2e:android

ios:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
- run: corepack enable
- run: yarn install
- name: Install Maestro
run: |
curl -Ls https://get.maestro.mobile.dev | bash
echo "$HOME/.maestro/bin" >> $GITHUB_PATH
- name: Build and run iOS flow
run: |
cd app
yarn build:deps
xcodebuild -workspace ios/OpenPassport.xcworkspace -scheme OpenPassport -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build
xcrun simctl boot "iPhone 15" || true
yarn test:e2e:ios
19 changes: 19 additions & 0 deletions app/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,25 @@ bundle exec fastlane ios internal_test test_mode:true
bundle exec fastlane android internal_test test_mode:true
```

### Maestro end-to-end tests

Install the Maestro CLI locally using curl or Homebrew:

```bash
curl -Ls https://get.maestro.mobile.dev | bash
# or
brew install maestro
```

Then build the app and run the flow:

```bash
yarn test:e2e:android # Android
yarn test:e2e:ios # iOS
```

The flow definition lives in [`e2e/launch.flow.yaml`](e2e/launch.flow.yaml).

## FAQ

If you get something like this:
Expand Down
6 changes: 6 additions & 0 deletions app/e2e/launch.flow.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
appId: com.proofofpassportapp
---
- launchApp
- waitFor: { visible: { id: "home-screen" }, timeout: 10000 }
onTimeout:
- waitFor: { visible: { id: "launch-screen" }, timeout: 10000 }
4 changes: 3 additions & 1 deletion app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,9 @@
"types": "tsc --noEmit",
"web": "vite",
"web:build": "vite build",
"web:preview": "vite preview"
"web:preview": "vite preview",
"test:e2e:android": "cd android && ./gradlew assembleDebug && cd .. && maestro test app/e2e/launch.flow.yaml --platform android",
"test:e2e:ios": "xcodebuild -workspace ios/OpenPassport.xcworkspace -scheme OpenPassport -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build && maestro test app/e2e/launch.flow.yaml --platform ios"
},
"dependencies": {
"@babel/runtime": "^7.27.4",
Expand Down
Loading