diff --git a/CHANGELOG.md b/CHANGELOG.md index f73bd26..88b1d79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed +## [2.0.1] + +### Added + +- Local E2E testing via maestro + ## [2.0.0] ### Changed diff --git a/E2E_TESTING.md b/E2E_TESTING.md new file mode 100644 index 0000000..9658811 --- /dev/null +++ b/E2E_TESTING.md @@ -0,0 +1,23 @@ +# E2E Testing + +We use Maestro for E2E testing. + +## Local setup + +### 1. [Install maestro](https://docs.maestro.dev/getting-started/installing-maestro) + +### 2. Run an E2E friendly version of the app + +``` + # Run from the example folder + npm run android:e2e + # Or + npm run ios:e2e +``` + +### 3. Run the E2E tests + +``` + # Run from the example folder + npm run e2e +``` diff --git a/README.md b/README.md index dfb7b8e..4bdd321 100644 --- a/README.md +++ b/README.md @@ -10,3 +10,5 @@ documentation][sdk_docs] to get started. [Contributiong](./CONTRIBUTING.md) [Development](./DEVELOPMENT.md) + +[E2E Testing](./E2E_TESTING.md) diff --git a/example/app.json b/example/app.json index f8c6642..521138a 100644 --- a/example/app.json +++ b/example/app.json @@ -9,7 +9,8 @@ "userInterfaceStyle": "automatic", "newArchEnabled": true, "ios": { - "supportsTablet": true + "supportsTablet": true, + "bundleIdentifier": "com.anonymous.example" }, "android": { "adaptiveIcon": { @@ -19,7 +20,8 @@ "monochromeImage": "./assets/images/android-icon-monochrome.png" }, "edgeToEdgeEnabled": true, - "predictiveBackGestureEnabled": false + "predictiveBackGestureEnabled": false, + "package": "com.anonymous.example" }, "web": { "output": "static", diff --git a/example/maestro/connectWidget.yaml b/example/maestro/connectWidget.yaml new file mode 100644 index 0000000..c89a80d --- /dev/null +++ b/example/maestro/connectWidget.yaml @@ -0,0 +1,7 @@ +appId: com.anonymous.example +--- +- launchApp +- tapOn: "Connect" +- assertVisible: "Select your institution" +- tapOn: ".*MX Bank.*" +- assertVisible: "Enter your credentials" diff --git a/example/package.json b/example/package.json index 3f84c73..574f289 100644 --- a/example/package.json +++ b/example/package.json @@ -4,8 +4,11 @@ "version": "1.0.0", "scripts": { "start": "expo start", - "android": "expo start --android", - "ios": "expo start --ios", + "android": "expo start:android", + "android:e2e": "expo run:android", + "e2e": "maestro test ./maestro/", + "ios": "expo start:ios", + "ios:e2e": "expo run:ios", "lint": "expo lint" }, "dependencies": { diff --git a/package-lock.json b/package-lock.json index 59929a8..83eeee6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@mxenabled/react-native-widget-sdk", - "version": "2.0.0", + "version": "2.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@mxenabled/react-native-widget-sdk", - "version": "2.0.0", + "version": "2.0.1", "license": "MIT", "dependencies": { "@mxenabled/widget-post-message-definitions": "^1.4.0", diff --git a/package.json b/package.json index c2e503c..862b9e2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@mxenabled/react-native-widget-sdk", "description": "MX React Native Widget SDK", - "version": "2.0.0", + "version": "2.0.1", "main": "dist/index.js", "module": "dist/index.mjs", "types": "dist/index.d.ts",