Skip to content

Commit f95b8f1

Browse files
chore(tests): end to end testing again (#11428)
* update sign up flow for updated design * accesibility labels for easier testing * assert on welcome screen to make wait reliably * update login flow * get rid of broken license check for now * attempt to install maestro in ci * attempt to run a test in ci * attempt with s3 download for now * need to check out project * try using m2 pro * ignore maestro folder for now Co-authored-by: George <[email protected]> * convenience script for installing app in booted sims Co-authored-by: George <[email protected]> * move flows to top level for now Co-authored-by: George <[email protected]> * attempt to run tests in parallel in ci Co-authored-by: George <[email protected]> * increase timeout for maestro tests Co-authored-by: George <[email protected]> * basic deeplink testing * try using xcode 16.2 * add missing idb install * don't clear state for deeplink tests to make more reliable * try just one flow again * try just booting one simulator * try parallelizing using circle parallelism Co-authored-by: George <[email protected]> * duplicate assertion in deeplink test * fix yml matching * add launch args dep and convenience methods for sign in and sign out Co-authored-by: George <[email protected]> * use signOut method instead of buggy clearState Co-authored-by: George <[email protected]> * move launch args to real deps for now * remove dev check for now * move maestro launch vals to hook to make more reliable, comment out problematic native module for now * script to workaround xarg exit code behavior * only sign out if currently signed in to prevent ui breakage * add required appID in config * run tests in sequence to avoid exit code not being propogated * comment auth model lint error for now * maestro init not dependent on login state, to avoid double sign out * remove conditional check, assert we are in signup flow Co-authored-by: George <[email protected]> * revert me: recaptcha debugging * Revert "revert me: recaptcha debugging" This reverts commit b54fd42. * fix deeplink assertion * make sure brokenflows are not run * quick login for deeplink test * run tests after beta * upload build to s3 and use in maestro tests * gate maestro init behind check * remove logs * test beta + e2e workflow * check to avoid crash when native module called early * bring back native module code, wait on hydration * tie e2e to beta ios builds for now * fix zip file creation * update version number * add active arch flag to speed up sim build * upgrade to xcode 16.2 and 18.2 sim * upload sim builds to s3 * make e2e dependent on test app rather than betas * clean up * typo in script * pr review: remove hardcoded appId * pr review: move script to utils * pr review: move env vars to file --------- Co-authored-by: George <[email protected]>
1 parent 657570c commit f95b8f1

30 files changed

+326
-121
lines changed

.circleci/config.yml

Lines changed: 64 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ jobs:
175175
BUNDLE_PATH: .vendor
176176

177177
macos:
178-
xcode: 16.1
178+
xcode: 16.2
179179
resource_class: macos.m1.medium.gen1
180180

181181
steps:
@@ -191,12 +191,58 @@ jobs:
191191
name: Update rollout if needed
192192
command: ./scripts/deploys/update-android-rollout-if-needed
193193

194+
run-e2e-tests:
195+
parallelism: 4
196+
197+
environment:
198+
BUNDLE_PATH: .vendor # path to install gems and use for caching
199+
200+
macos:
201+
xcode: 16.2
202+
resource_class: m2pro.medium
203+
204+
steps:
205+
- attach_workspace:
206+
at: ../workspace
207+
- macos/preboot-simulator:
208+
version: "18.2"
209+
platform: "iOS"
210+
device: "iPhone 16 Pro"
211+
- run:
212+
name: Install maestro
213+
command: curl -Ls "https://get.maestro.mobile.dev" | bash
214+
- run:
215+
name: Install idb
216+
command: brew tap facebook/fb && brew install idb-companion
217+
- run:
218+
name: Clear project dir
219+
command: |
220+
rm -rf /Users/distiller/project/*
221+
- checkout
222+
- setup-awscli
223+
- run:
224+
name: Set up maestro env
225+
command: ./scripts/setup/setup-maestro-env.sh
226+
- run:
227+
name: Download app zip
228+
command: aws s3 cp s3://artsy-citadel/eigen/builds/ios/Artsy-latest.zip ./Artsy.zip
229+
- run:
230+
name: Unzip the app
231+
command: unzip Artsy.zip
232+
- run:
233+
name: Install app in booted sims
234+
command: ./scripts/utils/install_app_in_booted_sims.sh
235+
- run:
236+
name: Run Maestro Tests
237+
no_output_timeout: 25m
238+
command: ./scripts/utils/run_maestro_shard.sh
239+
194240
deploy-nightly-beta:
195241
environment:
196242
BUNDLE_PATH: .vendor
197243

198244
macos:
199-
xcode: 16.1
245+
xcode: 16.2
200246
resource_class: macos.m1.medium.gen1
201247

202248
steps:
@@ -217,7 +263,7 @@ jobs:
217263
BUNDLE_PATH: .vendor
218264

219265
macos:
220-
xcode: 16.1
266+
xcode: 16.2
221267
resource_class: macos.m1.medium.gen1
222268

223269
steps:
@@ -309,7 +355,7 @@ jobs:
309355
BUNDLE_PATH: .vendor # path to install gems and use for caching
310356

311357
macos:
312-
xcode: 16.1
358+
xcode: 16.2
313359
resource_class: macos.m1.medium.gen1
314360

315361
steps:
@@ -383,7 +429,7 @@ jobs:
383429
BUNDLE_PATH: .vendor # path to install gems and use for caching
384430

385431
macos:
386-
xcode: 16.1
432+
xcode: 16.2
387433
resource_class: macos.m1.medium.gen1
388434

389435
steps:
@@ -423,7 +469,7 @@ jobs:
423469
- install-gems
424470
- install-cocoapods
425471
- macos/preboot-simulator:
426-
version: "18.1"
472+
version: "18.2"
427473
platform: "iOS"
428474
device: "iPhone 16 Pro"
429475
- build-app-ios
@@ -518,8 +564,12 @@ workflows:
518564
only:
519565
- main
520566
jobs:
567+
- build-test-app-ios
521568
- deploy-nightly-beta
522569
- run-nightly-tasks
570+
- run-e2e-tests:
571+
requires:
572+
- build-test-app-ios
523573

524574
flag-check:
525575
triggers:
@@ -600,3 +650,11 @@ workflows:
600650
requires:
601651
- build-test-app-ios
602652
- build-test-app-android
653+
654+
- run-e2e-tests:
655+
filters:
656+
branches:
657+
only:
658+
- beta-ios
659+
requires:
660+
- build-test-app-ios

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,9 @@ tsconfig.tsbuildinfo
151151
# Temporary files created by Metro to check the health of the file watcher
152152
.metro-health-check*
153153

154+
# maestro test artifacts
155+
.maestro/*
156+
154157
#########################################################
155158
# Keep this rule last.
156159
# Keep these, so we can keep the folders these appear in.

e2e/config.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
11
appId: ${MAESTRO_APP_ID}
22
---
3-
- runFlow:
4-
file: flows/onboarding/login.yml
5-
- runFlow:
6-
file: flows/onboarding/signupWithoutOnboarding.yml
7-
# This flow is broken because of performance issues and hangs of the Art Taste Quiz Screen
8-
# - runFlow:
9-
# file: flows/onboarding/onboardingQuiz.yml
3+
flows:
4+
- "flows/*"

e2e/flows/deeplinks.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
appId: ${MAESTRO_APP_ID}
2+
---
3+
- launchApp:
4+
clearState: false
5+
arguments:
6+
email: ${MAESTRO_TEST_EMAIL}
7+
password: ${MAESTRO_TEST_PASSWORD}
8+
- assertVisible: "New Works for You"
9+
- killApp
10+
- openLink:
11+
link: https://www.artsy.net/artist/kaws
12+
autoVerify: false
13+
- assertVisible: "Kaws"
14+
- killApp
15+
- openLink:
16+
link: https://click.artsy.net/f/a/epPWiX0dJaHHMiXAnSrzSg~~/AAQRxQA~/RgRj95QSP0SQaHR0cHM6Ly93d3cuYXJ0c3kubmV0L2NvbGxlY3Rpb24vYXVjdGlvbi1oaWdobGlnaHRzP3V0bV9zb3VyY2U9YnJhemUmdXRtX21lZGl1bT1lbWFpbCZ1dG1fY2FtcGFpZ249bnRmJnV0bV90ZXJtPTYyMTRmYjlkZWI0ZWZkN2RiNjBjZTcwNDk1NWU4NDQ1VwNzcGNCCmIFEg8VYlEJKGBSEmJyaWJlY2sxQGdtYWlsLmNvbVgEAAAAfw~~
17+
autoVerify: false
18+
- assertVisible: "Highlights at Auction This Week"
19+
- killApp
20+
- openLink:
21+
link: "https://email-link.artsy.net/ls/click?upn=u001.XPbk8dXjc6dwd18Yq2uPM3eTWB4YbDUmeJTAXXTF513sTSKEFRIPxrFgGj8gd2LN9AcRIza5p2-2Fi0huqjv6GWgdnpwA-2FRyTEIYA-2BT1-2F0josxHnYTzJpKeJEmkfzDQlMEY9y6FknqDddY-2BKmm5qtTrTIF2hxySbdUboaYf5ofK-2Bj-2FgSolzBiLvvzai-2FmvjWbSpNpJHWATexQixwLakesmmZUBoRoLkCnxs59pBxJPbB3JZyP13cv77lbfn1WzJ86fiW-2B5MQcd2qss7wLGBI-2BZuy-2FxDkbFuDzpfYPDlaUs1-2BuyO9rqleUCwXPEuyWXZ3aGJrh-_dWIRBTTKlL2IhQqV5a1Cy38Sd4xylePmkTfQkXpdWOLZbG0vcWuzG-2BSSjZ7xaSUgPR0lxFBD0Zz4mpyMqiSRd7GblcbPN8eH0NYfUK6pmADWc2UoFXyJdeq-2F-2BOyOeWlS7O-2FOrHgB9-2BOGtV1nkIFPq97vJTNmWtBMDOt77SsursARR1LHG7CnzBEedV5yll40aEh9LTjA47-2BfpvonTwdxvYfd6ZWsZN2uRczvCs34ipSKUClLSzq0xCn8IjAixssMm2IreBk6LmNzHPC1YLqmZ77pv0qTxX095mxh8mk7f9rJJ8Tg1fyfRFriXGsQqgHlY-2BqTf2aAU6LS9NVXirqdp20-2BHXhzUZbaCnkQNASABts91iKoZaDeV4xnYuuo3L-2F8"
22+
autoVerify: false
23+
- assertVisible: "The artwork you were looking for isn't available."

e2e/flows/login.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
appId: ${MAESTRO_APP_ID}
2+
---
3+
- launchApp:
4+
clearState: false
5+
arguments:
6+
shouldSignOut: "true"
7+
- assertVisible: "Sign up or log in"
8+
- tapOn: "Email Input"
9+
- inputText: ${MAESTRO_TEST_EMAIL}
10+
- tapOn: "Continue.*"
11+
- inputText: ${MAESTRO_TEST_PASSWORD}
12+
- tapOn: "Continue.*"
13+
- assertVisible: "New Works for You"

e2e/flows/onboarding/login.yml

Lines changed: 0 additions & 31 deletions
This file was deleted.

e2e/flows/onboarding/signup.yml

Lines changed: 0 additions & 25 deletions
This file was deleted.

0 commit comments

Comments
 (0)