test(mobile): add core field flow e2e harness - #1077
Open
p4uld4vid016-code wants to merge 22 commits into
Open
Conversation
🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
|
@p4uld4vid016-code Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
Fix generated Gradle wrapper execution and align paths with the workflow working directory so the Android build and Maestro artifacts complete reliably. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
The emulator runner executes its script with /usr/bin/sh, so avoid bash-only pipefail syntax that aborts the job before the Android build starts. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
Expo prebuild creates the Android project but this repository does not track the generated Gradle wrapper. Set up Gradle in CI and generate the wrapper before assembling the debug APK. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
The emulator runner passes multiline script entries to sh in a way that truncates the conditional body. Keep the fallback POSIX shell conditional on one line so the script parses correctly. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
Contributor
|
Kindly fix CI |
The android-emulator-runner action splits `script` on newlines and executes each line as a separate `sh -c` from its working directory, ignoring the workflow's `defaults.run.working-directory`. This made `cd android` and the Gradle build run from the repo root, failing with "Directory ... does not contain a Gradle build". Set the action's `working-directory` input to app/mobile and fold the prebuild + gradlew steps into one line so the directory change persists. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
The expo-notifications plugin references ./assets/notification-icon.png, which was never committed, so expo prebuild fails during the E2E build. Add the missing asset so native project generation succeeds. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
The app's expo modules were pinned to the SDK 55 line (camera 55.x, notifications 55.x, etc.) while the core was still SDK 54, so `expo prebuild` + Gradle could not build the debug APK (e.g. expo-battery 7.x lacked compileSdk). Move the whole app to Expo SDK 55 coherently: - expo ~55, react 19.2, react-native 0.83.10 and SDK 55 versions for every expo/bundled module; regenerate the app/mobile lockfile - replace deprecated expo-barcode-scanner with expo-camera CameraView - adapt expo-battery state listener (BatteryStateEvent no longer carries batteryLevel) 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
…e2e-harness # Conflicts: # app/mobile/package-lock.json # app/mobile/package.json
Maestro matches rendered text, not accessibility labels, so the icon-only scanner FAB was never found by `tapOn: text: "Scan QR Code"`. Convert the FAB to an extended FAB with a visible "Scan QR Code" label and add a scan-qr-fab testID. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
…e2e-harness # Conflicts: # app/mobile/package.json # app/mobile/src/__tests__/AppNavigator.test.tsx # app/mobile/src/screens/BulkScannerScreen.tsx # app/mobile/src/screens/HomeScreen.tsx # app/mobile/src/screens/ScannerScreen.tsx
The merge pulled in upstream's i18n + lockfile conventions, breaking three
checks:
- i18n: the scan FAB's visible label was hardcoded JSX; use
t('home.scanQrCode') now that catalogs are the source of truth.
- frozen-lockfile: pnpm-lock.yaml still pinned upstream's expo-54 mobile
specs; regenerate it against the merged SDK-55 package.json.
- e2e: Maestro could not see the FAB label because the button's
accessibility node merges/hides child Text; match the stable testID
(scan-qr-fab) instead, and optionally dismiss the release-notes modal
that a fresh install can show over Home at launch.
🤖 Generated with Codebuff
Co-Authored-By: Codebuff <noreply@codebuff.com>
Maestro rejects `timeout` on tapOn; waiting with a deadline belongs on extendedWaitUntil. Keep the optional tap separate so the modal is only dismissed when it actually renders. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #932