Skip to content
This repository has been archived by the owner on Nov 13, 2024. It is now read-only.

Latest commit

 

History

History
66 lines (48 loc) · 2.32 KB

README.md

File metadata and controls

66 lines (48 loc) · 2.32 KB

detox-expo-helpers

Utilities for using detox in your Expo/Create React Native App apps.

Use it

Install it

yarn add fschoenfeldt/detox-expo-helpers -D
 # or
npm i fschoenfeldt/detox-expo-helpers --save-dev

Also, declare expo-detox-hooks in your project's package.json.

Set up detox on your project

Follow the steps in the detox Getting Started guide.

Download the Expo app to some directory in your project and configure in package.json

You can download the Expo app from the Expo Tools page. See an example package.json configuration

Use detox-expo-helpers in your app

⚠️ Important: This fork disables deviceSynchronization because it was the only way we could figure out getting Detox@18 to work. When launching the App with reloadApp, you have to wait for the first element to ensure the app is properly booted. (See Example)

All you really need to use is reloadApp, like so:

const { reloadApp } = require('detox-expo-helpers');

describe(`Example Tests`, () => {
    beforeAll(async () => {
      await reloadApp({
        // Optionally, you can also set some parameters when loading the app
        // see https://github.com/wix/Detox/blob/master/docs/APIRef.DeviceObjectAPI.md
        args: {
          disableTouchIndicators: true,
          delete: true,
          languageAndLocale: {
            language: "de-DE",
            locale: "de-DE",
          },
        },
        launchArgs: {
          // see https://github.com/wix/Detox/blob/master/docs/APIRef.LaunchArgs.md
        }
      });
      // ⚠️ Important! Wait for first element to ensure that app is booted
      const confirmButton = $('confirm_button');
      await waitFor(confirmButton).toBeVisible().withTimeout(10000);
    });

    // Your tests
    it('can do this and that', async () => { ... }
}

Example app

You can find the latest example app here, which is working with Expo@42 and Detox@18: https://github.com/fschoenfeldt/clean-expo-detox-testing

Original Example App: Try out an example app with this already configured at https://github.com/expo/with-detox-tests