Skip to content

Commit 3d95c38

Browse files
committed
chore(e2e): move integration-mobile to integration/mobile + case-insensitive Select all
Two changes bundled (both invalidate the binary cache, so cheaper to do together than in sequence): 1. git mv integration-mobile integration/mobile, and rewrite the 8 workflow references to the new path. Now sits alongside Playwright's /integration as a sibling directory, which is more discoverable than the previous top-level integration-mobile sibling. 2. Fix the "Select all" regex to match both iOS ("Select All") and Android ("Select all"). iOS sign-in-sign-out-sign-in failed in the prior run because the runFlow guard didn't match iOS's capital A and the field-clear short-circuited, leaving stale text + appended typing on the second sign-in. Android already passed end-to-end on the previous run with binary cache hit (9m21s); next run will be cold-cache again because of the workflow hash change, but should populate fresh caches for both platforms.
1 parent 71991ed commit 3d95c38

34 files changed

Lines changed: 11 additions & 10 deletions

.github/workflows/mobile-e2e.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ jobs:
129129
mv app.json.tmp app.json
130130
# The quickstart's app.json ships with placeholder bundle ids
131131
# ("com.yourcompany.yourapp") but the Maestro flows in
132-
# integration-mobile/flows reference "com.clerk.clerkexpoquickstart".
132+
# integration/mobile/flows reference "com.clerk.clerkexpoquickstart".
133133
# Align them so launchApp/clearAppState target the installed app.
134134
jq '.expo.ios.bundleIdentifier = "com.clerk.clerkexpoquickstart" | .expo.android.package = "com.clerk.clerkexpoquickstart"' app.json > app.json.tmp
135135
mv app.json.tmp app.json
@@ -333,7 +333,7 @@ jobs:
333333
# so we pass each flow file explicitly via find.
334334
script: >-
335335
adb install -r /tmp/cached-app-release.apk &&
336-
cd integration-mobile &&
336+
cd integration/mobile &&
337337
find flows -type f -name "*.yaml" ! -path "*/common/*"
338338
${FLOWS_FILTER:+-path "*$FLOWS_FILTER*"} -print0
339339
| xargs -0 maestro test --env CLERK_TEST_EMAIL="$CLERK_TEST_EMAIL" --env CLERK_TEST_PASSWORD="$CLERK_TEST_PASSWORD" --exclude-tags "$EXCLUDE_TAGS"
@@ -344,12 +344,12 @@ jobs:
344344
with:
345345
name: maestro-android
346346
# ~/.maestro/tests holds Maestro's auto-captured failure screenshots
347-
# and commands JSON. integration-mobile/*.png holds the takeScreenshot
347+
# and commands JSON. integration/mobile/*.png holds the takeScreenshot
348348
# debug captures that flows write, which Maestro saves relative to
349-
# the cwd it was launched from (integration-mobile/).
349+
# the cwd it was launched from (integration/mobile/).
350350
path: |
351351
~/.maestro/tests
352-
integration-mobile/*.png
352+
integration/mobile/*.png
353353
354354
- name: Cleanup test user
355355
if: always() && steps.user.outputs.user_id != ''
@@ -440,7 +440,7 @@ jobs:
440440
mv app.json.tmp app.json
441441
# The quickstart's app.json ships with placeholder bundle ids
442442
# ("com.yourcompany.yourapp") but the Maestro flows in
443-
# integration-mobile/flows reference "com.clerk.clerkexpoquickstart".
443+
# integration/mobile/flows reference "com.clerk.clerkexpoquickstart".
444444
# Align them so launchApp/clearAppState target the installed app.
445445
jq '.expo.ios.bundleIdentifier = "com.clerk.clerkexpoquickstart" | .expo.android.package = "com.clerk.clerkexpoquickstart"' app.json > app.json.tmp
446446
mv app.json.tmp app.json
@@ -619,7 +619,7 @@ jobs:
619619
xcrun simctl boot "$SIM_UDID" 2>/dev/null || true
620620
xcrun simctl bootstatus "$SIM_UDID" -b
621621
xcrun simctl install "$SIM_UDID" /tmp/cached-clerknativequickstart.app
622-
cd integration-mobile
622+
cd integration/mobile
623623
# Maestro doesn't auto-recurse into subdirectories; pass each flow explicitly.
624624
find flows -type f -name "*.yaml" ! -path "*/common/*" \
625625
${FLOWS_FILTER:+-path "*$FLOWS_FILTER*"} -print0 | \
@@ -635,7 +635,7 @@ jobs:
635635
name: maestro-ios
636636
path: |
637637
~/.maestro/tests
638-
integration-mobile/*.png
638+
integration/mobile/*.png
639639
640640
- name: Cleanup test user
641641
if: always() && steps.user.outputs.user_id != ''
File renamed without changes.
File renamed without changes.

integration-mobile/flows/common/assert-signed-out.yaml renamed to integration/mobile/flows/common/assert-signed-out.yaml

File renamed without changes.
File renamed without changes.

integration-mobile/flows/common/sign-in-email-password.yaml renamed to integration/mobile/flows/common/sign-in-email-password.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,13 @@ appId: com.clerk.clerkexpoquickstart
2020
text: "Enter your email or username"
2121
- longPressOn:
2222
text: "Enter your email or username"
23+
# iOS shows "Select All", Android shows "Select all" — match both.
2324
- runFlow:
2425
when:
25-
visible: "Select all"
26+
visible: "Select [Aa]ll"
2627
commands:
2728
- tapOn:
28-
text: "Select all"
29+
text: "Select [Aa]ll"
2930
- inputText: ${CLERK_TEST_EMAIL}
3031
- takeScreenshot: debug-02-email-typed
3132
- tapOn:

integration-mobile/flows/common/sign-out-via-button.yaml renamed to integration/mobile/flows/common/sign-out-via-button.yaml

File renamed without changes.

integration-mobile/flows/common/sign-out-via-profile.yaml renamed to integration/mobile/flows/common/sign-out-via-profile.yaml

File renamed without changes.

0 commit comments

Comments
 (0)