Moropo
RoadmapTerms
  • Welcome to Moropo
  • Quick Start
  • Uploading your app
    • Producing an Android Build
    • Producing an iOS Build
    • Uploading Your Build To Moropo
  • Creating Tests
    • Using the Test Creator
    • Test Configuration
    • Test Step Commands
      • addMedia
      • assertNotVisible
      • assertTrue
      • assertVisible
      • back (Android only)
      • clearKeychain (iOS Only)
      • clearState
      • copyTextFrom
      • doubleTapOn
      • eraseText
      • evalScript
      • extendedWaitUntil
      • hideKeyboard
      • inputRandomEmail
      • inputRandomNumber
      • inputRandomPersonName
      • inputRandomText
      • inputText
      • launchApp
      • longPressOn
      • openLink
      • pasteText
      • pressKey
      • repeat
      • runFlow
      • runScript
      • scroll
      • scrollUntilVisible
      • setLocation
      • startRecording
      • stopApp
      • stopRecording
      • swipe
      • takeScreenshot
      • tapOn
      • travel
      • waitForAnimationToEnd
    • Test Step Selectors
    • Importing From Maestro
    • Environment Variables
      • ${BUNDLEID}
      • ${EXPORELEASECHANNEL}
      • ${MOROPO_TEST_EMAIL}
      • ${MOROPO_EMAIL_URL}
    • Advanced Use Cases
      • JavaScript
      • Conditionals
      • Network Connection
      • Drag and Drop
  • Running Tests
    • Manually Trigger a Test Run
    • Scheduling a Test Run
    • Tags
    • Supported Devices
    • Test Execution Limits
    • Flakiness Tolerance & Retries
  • CI Integration
    • Initial CI Setup In Moropo
    • GitHub Action
    • Moropo API
      • Branches
      • Builds
      • Test Runs
      • Tests
  • Test Results
    • Results Explorer
    • Slack Reporting
    • Email Reporting
  • App Frameworks
    • Flutter
    • React Native
  • Guides
    • React Native Expo
    • Access Emails During A Test Flow
    • Git workflow using Moropo API
  • Infrastructure
    • IP Addresses
  • Security
    • Services Infrastructure
    • Security Best Practices
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Guides

React Native Expo

A guide to running end-to-end in Moropo tests using Expo

Last updated 9 months ago

Was this helpful?

Using Expo Go

To use Expo Go in Moropo, upload the Expo Go .app and .apk in place of your release build files.

Using an Expo Dev Client

If you wish to test using an Expo Dev Client, follow Expo's instructions on producing an or . Once you have the build files (.app and .apk), you can upload them to Moropo in the usual way.

Launch your app via an Expo URL

These examples assume you're working with an Expo Dev Client.

Grab your Expo URL and use the openLink command to launch your app:

appId: ${BUNDLEID}
---
- openLink:
    link: "${BUNDLEID}://expo-development-client/?url=https://u.expo.dev/cx1e344b-8011-4434-91a6-dec36deb68c0?channel-name=moropo-452&runtime-version=exposdk:47.0.0&platform=ios"

If you're using the Moropo GitHub Expo Integration then the Expo Release Channel URL can be auto-populated for you via the ${EXPORELEASECHANNEL} variable.

appId: ${BUNDLEID}
---
- openLink:
    link: "${BUNDLEID}://expo-development-client/?url=${EXPORELEASECHANNEL}"

Disabling Onboarding

Disable Onboarding isn't working in Expo SDK 51

If it's the first time opening Expo (as it always the case on Moropo clean devices) then you will be presented with the Expo onboarding flow:

It's easy to bypass this menu by adding the disableOnboarding parameter to the end of your Expo URL. This parameter will instruct Expo to skip this screen so you don't need to include it in your test flow. Note, due to differences between Android & iOS this has to be formatted slightly differently for each.

  • Android - %26disableOnboarding%3D1

  • iOS - &disableOnboarding=1

appId: ${BUNDLEID}
---
#Android Example
- openLink:
    link: "${BUNDLEID}://expo-development-client/?url=${EXPORELEASECHANNEL}%26disableOnboarding%3D1"
#iOS Example
- openLink:
    link: "${BUNDLEID}://expo-development-client/?url=${EXPORELEASECHANNEL}&disableOnboarding=1"

Alternatively, you can manage the difference between the two by using Conditionals

Hello there, friend! Since this is your first time opening this development build, we wanted to show you this menu...

👋
iOS Simulator build
Android APK
Expo onboarding flow appearing during a test run