Skip to content

Conversation

@vivianjeng
Copy link
Member

  • 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.
- 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.
… 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.
- 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.
… 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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants