-
Notifications
You must be signed in to change notification settings - Fork 2
feat: add end-to-end testing setup with Maestro #20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
vivianjeng
wants to merge
26
commits into
ubrn
Choose a base branch
from
ubrn-test-e2e
base: ubrn
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
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
Member
vivianjeng
commented
Oct 28, 2025
- Introduced Maestro for E2E testing, including a global configuration file (maestro.yaml) and a sample test for Circom proof generation.
- Updated package.json with new scripts for running E2E tests.
- Enhanced GitHub Actions workflow to install Maestro, boot the iOS simulator, and run tests.
- Added README documentation for E2E tests, including prerequisites and usage instructions.
- Created a directory structure for test files and reports.
- Introduced Maestro for E2E testing, including a global configuration file (maestro.yaml) and a sample test for Circom proof generation. - Updated package.json with new scripts for running E2E tests. - Enhanced GitHub Actions workflow to install Maestro, boot the iOS simulator, and run tests. - Added README documentation for E2E tests, including prerequisites and usage instructions. - Created a directory structure for test files and reports.
- Added a comprehensive Android E2E testing setup using Maestro, including installation steps and environment configuration. - Implemented steps to build the Android app for Detox and upload test results and screenshots. - Updated the iOS simulator boot process to use "iPhone 17 Pro" for consistency. - Cleaned up commented-out code related to previous Android testing attempts.
- Removed unnecessary environment variable EXPO_NO_WAIT from both iOS and Android workflows. - Updated iOS simulator boot process by replacing the boot command with a streamlined npm script. - Consolidated Metro bundler startup commands to use npm run start for consistency across platforms.
- Updated the E2E testing workflow to start the Metro bundler in the background using 'npm run start &' for both iOS and Android jobs. - This change allows for smoother execution of subsequent steps without waiting for Metro to finish starting.
… for Android - Eliminated the 'npm run build:ios' step from the iOS E2E testing workflow to streamline the process. - Added a new binary file for the Android project located in 'MoproReactNativeBindings/android/src/main/jniLibs/x86_64/libmopro_example_app.a' to support native functionality.
- Added a step to boot the iOS simulator for E2E tests, improving the setup process. - Updated the Android build step to create a Debug APK and modified the testing script to install the APK before running tests. - These changes streamline the testing workflow and ensure proper environment setup for both platforms.
- Enhanced the iOS simulator boot process by adding a check for booted devices and a step to install and launch the app. - Simplified the Android testing script by directly running the E2E tests without the APK installation step, streamlining the workflow. - These updates improve the reliability and efficiency of the end-to-end testing process across both platforms.
- Upgraded actions/checkout and actions/setup-node to their latest versions for better performance and security. - Enhanced the iOS testing process by adding steps to build and install the app, and improved the Metro bundler handling. - Streamlined the Android testing script to create reports and ensure proper cleanup after tests. - These changes enhance the reliability and efficiency of the end-to-end testing workflow across both platforms.
…ld process - Added a step to set up JDK 21 using actions/setup-java for improved compatibility. - Replaced the previous Metro bundler and app installation steps with a direct xcodebuild command for building the iOS app. - Enhanced the installation process for the iOS app by using xcrun simctl to install the built app directly. - These changes improve the efficiency and reliability of the iOS testing workflow.
- Added 'build/' to .gitignore to prevent build artifacts from being tracked in the repository. - This change helps maintain a cleaner project structure by excluding unnecessary files.
- Modified the Android build step in the E2E workflow to use a more general build command, simplifying the process. - Enhanced the Circom proof test configuration by adding a wait step for the "Circom Proof" element to ensure it is visible before proceeding, with a timeout of 60 seconds. - Adjusted the assertion format for consistency in the test script.
- Replaced the wait step for the "Circom Proof" element with a waitForAnimationToEnd step, improving the reliability of the test by ensuring the animation completes before proceeding. - This change enhances the visibility assertion process in the E2E testing workflow.
- Added MAESTRO_CLI_NO_ANALYTICS environment variable to the E2E workflow for improved analytics control. - Introduced a cleanup step to free up disk space before building the Debug APK, optimizing resource usage. - Updated the Circom proof test configuration to implement a retry mechanism for the visibility assertion, increasing test robustness.
- Added MAESTRO_CLI_NO_ANALYTICS environment variable to the E2E workflow to enhance analytics control. - Modified the Android testing script to include the installation of the debug APK before running tests, ensuring the latest version is used. - Updated the Circom proof test configuration to implement a repeat mechanism for the visibility assertion, increasing test robustness.
…ocess - Added a step to launch the iOS app using xcrun simctl, enhancing the testing setup. - Modified the Android testing script to include a build step for the Debug APK, ensuring the latest version is installed before running tests. - These changes improve the reliability and efficiency of the end-to-end testing workflow.
- Removed the separate steps for starting the Metro bundler and waiting for it to be ready, simplifying the workflow. - Integrated the Metro start command directly into the Android testing script, enhancing the efficiency of the build and test process. - These changes improve the overall reliability and speed of the end-to-end testing workflow.
…ssertion - Replaced the repeat mechanism with a conditional runFlow step that checks for the visibility of the "Circom Proof" element before executing the assertion. - This change enhances the reliability of the test by ensuring it only proceeds when the element is visible, improving overall test robustness.
…assertions - Added visibility assertions for "Halo2 Proof" and "Noir Proof" to the Circom proof test configuration, ensuring these elements are checked during the test. - Removed redundant assertions to streamline the test process while maintaining robustness in visibility checks.
…figuration - Added a timeout of 30 minutes to the E2E workflow jobs to prevent long-running processes from hanging indefinitely. - Modified the Android testing script to include a command for launching the app before running end-to-end tests, enhancing the testing setup. - These changes improve the reliability and efficiency of the end-to-end testing workflow.
- Updated the E2E workflow script to streamline the Android testing process by removing unnecessary wait steps for the Metro bundler. - Enhanced the Circom proof test configuration by replacing the runFlow mechanism with an extended wait for visibility, ensuring more reliable assertions for "Circom Proof," "Halo2 Proof," and "Noir Proof." - These changes improve the efficiency and reliability of the end-to-end testing workflow.
7b6302c to
156321b
Compare
- Increased the timeout for the visibility check of the "Circom Proof" element from 30 seconds to 60 seconds in the Circom proof test configuration. - This change aims to enhance the reliability of the test by allowing more time for the element to become visible before proceeding with assertions.
- Increased the number of CPU cores allocated to the emulator from 1 to 2 in the E2E workflow configuration. - This change aims to enhance the performance of the Android testing process by allowing better resource utilization during tests.
43257fd to
a9d6354
Compare
… script - Added a step to set up JDK 21 using Zulu in the E2E workflow, ensuring compatibility with Java-based components. - Modified the Android testing script to launch the app before running end-to-end tests, improving the testing setup and execution flow. - These changes aim to enhance the reliability and efficiency of the end-to-end testing process.
ac468e1 to
9b3e307
Compare
- Reordered commands in the Android testing script to start the Metro bundler after the app build, improving the execution flow. - This change enhances the efficiency of the end-to-end testing process by ensuring the app is ready before running tests.
- Refactored the Android testing script in the E2E workflow to improve readability and maintainability by adding comments and separating commands into distinct sections. - This change aims to streamline the testing process and make it easier to understand the workflow steps involved in building, installing, and testing the app.
a95da8f to
63323f0
Compare
… organization - Added new entries to .gitignore for the e2e/reports directory to prevent unnecessary files from being tracked. - Modified package.json to include debug output paths for E2E tests, directing reports to e2e/reports for better organization. - Removed the upload of screenshots from the E2E workflow, streamlining the process and focusing on report generation.
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.