summaryrefslogtreecommitdiff
path: root/e2e
diff options
context:
space:
mode:
authorThomas F. K. Jorna <[email protected]>2021-07-14 15:10:31 +0200
committerThomas F. K. Jorna <[email protected]>2021-07-14 15:10:31 +0200
commite5021187e96b78b53203bd95d08d6818aea47d17 (patch)
tree37ec45d00eb963db53cd4bb4f04a770414b351cc /e2e
New Ignite 7.0.6 app
Diffstat (limited to 'e2e')
-rw-r--r--e2e/README.md66
-rw-r--r--e2e/config.json4
-rw-r--r--e2e/firstTest.spec.js19
-rw-r--r--e2e/init.js19
-rw-r--r--e2e/reload.js2
5 files changed, 110 insertions, 0 deletions
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 }