diff --git a/.circleci/config.yml b/.circleci/config.yml index 09ad0cae9a2..638d7d74b75 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -162,6 +162,16 @@ commands: - android/build - android/app/build - node_modules/react-native-config + install-maestro: + steps: + - run: + name: Install Maestro + command: curl -Ls "https://get.maestro.mobile.dev" | bash + maestro-run-tests: + steps: + - run: + name: Run tests + command: maestro test e2e/config.yml jobs: detect-secrets: docker: @@ -329,6 +339,38 @@ jobs: - .manifests - dist + maestro-test-app-ios: + environment: + MAESTRO_APP_ID: net.artsy.artsy + MAESTRO_DRIVER_STARTUP_TIMEOUT: 60000 + CI: 1 + + macos: + xcode: 15.1 + resource_class: macos.m1.medium.gen1 + + steps: + - checkout + - macos/install-rosetta + - install-node + - setup-awscli + - setup-env-file + - install-node-modules + - install-maestro + - run-relay-compiler + - install-gems + - run: ls -la + - run: ./scripts/setup/download-fonts + - run: ./scripts/setup/download-assets-ios + - install-cocoapods + - macos/preboot-simulator: + version: "17.2" + platform: "iOS" + device: "iPhone 15 Pro" + - run: yarn maestro:ios:release:build + - run: yarn maestro:ios:release:install + - run: maestro test e2e/config.yml + build-test-app-ios: environment: BUNDLE_PATH: .vendor # path to install gems and use for caching @@ -513,3 +555,12 @@ workflows: requires: - build-test-app-ios - build-test-app-android + + - approve-maestro-ios-test: + type: approval + # requires: + # - build-test-app-ios + + - maestro-test-app-ios: + requires: + - approve-maestro-ios-test diff --git a/e2e/flows/onboarding/login.yml b/e2e/flows/onboarding/login.yml index 7dc9535ca5d..00146a82da7 100644 --- a/e2e/flows/onboarding/login.yml +++ b/e2e/flows/onboarding/login.yml @@ -3,6 +3,7 @@ appId: ${MAESTRO_APP_ID} - launchApp: clearState: true clearKeychain: true + permissions: { all: deny } - tapOn: "Log in.*" - tapOn: "Continue with Email.*" - inputText: ${MAESTRO_TEST_EMAIL} @@ -28,4 +29,4 @@ appId: ${MAESTRO_APP_ID} commands: - tapOn: id: "Home Grabber" -- assertVisible: "New Works for You" +- assertVisible: "Activity" diff --git a/e2e/flows/onboarding/signup.yml b/e2e/flows/onboarding/signup.yml index 68714ce7efe..94493173571 100644 --- a/e2e/flows/onboarding/signup.yml +++ b/e2e/flows/onboarding/signup.yml @@ -3,6 +3,7 @@ appId: ${MAESTRO_APP_ID} - launchApp: clearState: true clearKeychain: true + permissions: { all: deny } - tapOn: "Sign up.*" - tapOn: "Continue with Email.*" - runScript: diff --git a/e2e/flows/onboarding/signupWithoutOnboarding.yml b/e2e/flows/onboarding/signupWithoutOnboarding.yml index dd4f22bdf48..963b7f26561 100644 --- a/e2e/flows/onboarding/signupWithoutOnboarding.yml +++ b/e2e/flows/onboarding/signupWithoutOnboarding.yml @@ -3,4 +3,4 @@ appId: ${MAESTRO_APP_ID} - runFlow: file: signup.yml - tapOn: "Skip.*" -- assertVisible: "New Works for You" +- assertVisible: "Activity"