From e5021187e96b78b53203bd95d08d6818aea47d17 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Wed, 14 Jul 2021 15:10:31 +0200 Subject: New Ignite 7.0.6 app --- e2e/README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++ e2e/config.json | 4 ++++ e2e/firstTest.spec.js | 19 +++++++++++++++ e2e/init.js | 19 +++++++++++++++ e2e/reload.js | 2 ++ 5 files changed, 110 insertions(+) create mode 100644 e2e/README.md create mode 100644 e2e/config.json create mode 100644 e2e/firstTest.spec.js create mode 100644 e2e/init.js create mode 100644 e2e/reload.js (limited to 'e2e') diff --git a/e2e/README.md b/e2e/README.md new file mode 100644 index 0000000..83c7ec7 --- /dev/null +++ b/e2e/README.md @@ -0,0 +1,66 @@ +# Detox End-To-End Testing + +## Setup + +To get your Detox tests up and running, you'll need to install some global dependencies: + +1. Install the latest version of [Homebrew](https://brew.sh/) +2. Make sure you have Node installed (at least 8.6.0). If you don't: + +If you use NVM: + +```bash +nvm install node +``` + +Or if you'd prefer to install directly from Homebrew + +```bash +brew update && brew install node +``` + +3. Install `applesimutils, which will allow Detox to communicate with the iOS simulator: + +```bash +brew tap wix/brew && brew install applesimutils +``` + +4. Install the Detox CLI + +```bash + yarn global add detox-cli +``` + +## Adding tests + +We've gotten you started with `./e2e/firstTest.spec.js`, which tests that the two main example screens render properly. + +Note that in order to pick up elements by ID, we've added the `testID` prop to the component. + +## Running tests + +1. Start the packager + +``` +yarn start +``` + +_(Expo-only note: for testing [production code](https://docs.expo.io/workflow/development-mode/#production-mode), start the packager with `yarn start --no-dev --minify`)_ + +2. Run the app + +In a separate terminal window from the packager: + +``` +yarn build:e2e +``` + +_(Expo-only note: this is unnecessary for Expo apps)_ + +3. Run the tests + +``` +yarn test:e2e +``` + +For more information, make sure to check out the official [Detox Docs](https://github.com/wix/Detox/blob/master/docs/README.md) diff --git a/e2e/config.json b/e2e/config.json new file mode 100644 index 0000000..1f6588a --- /dev/null +++ b/e2e/config.json @@ -0,0 +1,4 @@ +{ + "setupFilesAfterEnv": ["./init.js"], + "testEnvironment": "node" +} diff --git a/e2e/firstTest.spec.js b/e2e/firstTest.spec.js new file mode 100644 index 0000000..a407fd3 --- /dev/null +++ b/e2e/firstTest.spec.js @@ -0,0 +1,19 @@ +// For more info on how to write Detox tests, see the official docs: +// https://github.com/wix/Detox/blob/master/docs/README.md + +const { reloadApp } = require("./reload") + +describe("Example", () => { + beforeEach(async () => { + await reloadApp() + }) + + it("should have welcome screen", async () => { + await expect(element(by.id("WelcomeScreen"))).toBeVisible() + }) + + it("should go to next screen after tap", async () => { + await element(by.id("next-screen-button")).tap() + await expect(element(by.id("DemoScreen"))).toBeVisible() + }) +}) diff --git a/e2e/init.js b/e2e/init.js new file mode 100644 index 0000000..7bb0330 --- /dev/null +++ b/e2e/init.js @@ -0,0 +1,19 @@ +const detox = require("detox") +const config = require("../package.json").detox +const adapter = require("detox/runners/jest/adapter") + +jest.setTimeout(120000) +jasmine.getEnv().addReporter(adapter) + +beforeAll(async () => { + await detox.init(config) +}) + +beforeEach(async () => { + await adapter.beforeEach() +}) + +afterAll(async () => { + await adapter.afterAll() + await detox.cleanup() +}) diff --git a/e2e/reload.js b/e2e/reload.js new file mode 100644 index 0000000..5aadaf6 --- /dev/null +++ b/e2e/reload.js @@ -0,0 +1,2 @@ +const { reloadApp } = require("detox-expo-helpers") +module.exports = { reloadApp } -- cgit v1.2.3