Skip to content

Commit dfab628

Browse files
Abbondanzometa-codesync[bot]
authored andcommitted
Make flaky RNTester image E2E flows Android-only (#57405)
Summary: Pull Request resolved: #57405 The `image-blur-prefetch` and `image-wide-gamut` Maestro flows under `packages/rn-tester/.maestro/` were added recently and are too flaky on the iOS E2E job (`test_e2e_ios_rntester`), repeatedly failing builds in the React Native OSS repo. Both rely on `assertScreenshot` color/blur comparisons that don't reproduce reliably on the iOS simulator in CI. This wraps each flow in a `runFlow: when: platform: Android` guard and adds the `android-only` tag, matching the existing pattern used by `image-progressive-jpeg.yml` and `image-getsize-local-drawables.yml`. On iOS the wrapped `runFlow` is skipped, leaving an empty (passing) flow; on Android the flow runs in full, so Android coverage is unchanged. The long-standing `image.yml` flow (cross-platform test case in place since 2024) is intentionally left untouched and continues to run on iOS. Changelog: [Internal] Reviewed By: zeyap Differential Revision: D110372082 fbshipit-source-id: 8a33c32dff94017cb1706ce706876101d7a109a2
1 parent 3d9cc50 commit dfab628

4 files changed

Lines changed: 88 additions & 74 deletions

File tree

Lines changed: 40 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,42 @@
11
appId: ${APP_ID} # iOS: com.meta.RNTester.localDevelopment | Android: com.facebook.react.uiapp
2+
tags:
3+
- android-only
24
---
3-
# Prefetch an image, then render the same URI with blurRadius so the blur
4-
# postprocessor applies to the already-decoded bitmap. Cross-platform.
5-
- runFlow: ./helpers/launch-app-and-search.yml
6-
- inputText:
7-
text: 'Image'
8-
- assertVisible:
9-
id: 'Image'
10-
- tapOn:
11-
id: 'Image'
12-
- assertVisible:
13-
id: 'example_search'
14-
- tapOn:
15-
id: 'example_search'
16-
- inputText: 'Blur Radius with Prefetch'
17-
- hideKeyboard
18-
- scrollUntilVisible:
19-
element:
20-
id: 'image-blur-prefetch'
21-
direction: DOWN
22-
speed: 40
23-
timeout: 10000
24-
- extendedWaitUntil:
25-
visible: 'prefetch: ok'
26-
timeout: 20000
27-
- extendedWaitUntil:
28-
visible: 'blurred image: loaded'
29-
timeout: 20000
30-
# Change this to takeScreenshot when you want to update the screenshot
31-
- assertScreenshot:
32-
path: screenshots/image-blur-prefetch-${maestro.platform}
33-
cropOn:
34-
id: 'image-blur-prefetch'
35-
thresholdPercentage: 95
5+
# Android-only: prefetch an image, then render the same URI with blurRadius so
6+
# the blur postprocessor applies to the already-decoded bitmap. Flaky on the iOS
7+
# E2E job, so guarded to Android; iOS skips this flow (empty=pass).
8+
- runFlow:
9+
when:
10+
platform: Android
11+
commands:
12+
- runFlow: ./helpers/launch-app-and-search.yml
13+
- inputText:
14+
text: 'Image'
15+
- assertVisible:
16+
id: 'Image'
17+
- tapOn:
18+
id: 'Image'
19+
- assertVisible:
20+
id: 'example_search'
21+
- tapOn:
22+
id: 'example_search'
23+
- inputText: 'Blur Radius with Prefetch'
24+
- hideKeyboard
25+
- scrollUntilVisible:
26+
element:
27+
id: 'image-blur-prefetch'
28+
direction: DOWN
29+
speed: 40
30+
timeout: 10000
31+
- extendedWaitUntil:
32+
visible: 'prefetch: ok'
33+
timeout: 20000
34+
- extendedWaitUntil:
35+
visible: 'blurred image: loaded'
36+
timeout: 20000
37+
# Change this to takeScreenshot when you want to update the screenshot
38+
- assertScreenshot:
39+
path: screenshots/image-blur-prefetch-${maestro.platform}
40+
cropOn:
41+
id: 'image-blur-prefetch'
42+
thresholdPercentage: 95
Lines changed: 48 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,50 @@
11
appId: ${APP_ID} # iOS: com.meta.RNTester.localDevelopment | Android: com.facebook.react.uiapp
2+
tags:
3+
- android-only
24
---
3-
# Alpha transparency + sRGB vs Display-P3 wide-gamut. Color fidelity needs a
4-
# screenshot, so we assert load status only. Cross-platform.
5-
- runFlow: ./helpers/launch-app-and-search.yml
6-
- inputText:
7-
text: 'Image'
8-
- assertVisible:
9-
id: 'Image'
10-
- tapOn:
11-
id: 'Image'
12-
- assertVisible:
13-
id: 'example_search'
14-
- tapOn:
15-
id: 'example_search'
16-
- inputText: 'Wide Gamut'
17-
- hideKeyboard
18-
- scrollUntilVisible:
19-
element:
20-
id: 'image-wide-gamut'
21-
direction: DOWN
22-
speed: 40
23-
timeout: 10000
24-
- extendedWaitUntil:
25-
visible: 'alpha: loaded'
26-
timeout: 15000
27-
- scrollUntilVisible:
28-
element: 'sRGB: loaded'
29-
direction: DOWN
30-
speed: 40
31-
timeout: 20000
32-
# External URL; accept loaded or error.
33-
- scrollUntilVisible:
34-
element: 'P3: (loaded|error)'
35-
direction: DOWN
36-
speed: 40
37-
timeout: 20000
38-
# Change this to takeScreenshot when you want to update the screenshot
39-
- assertScreenshot:
40-
path: screenshots/image-wide-gamut-${maestro.platform}
41-
cropOn:
42-
id: 'image-wide-gamut'
43-
thresholdPercentage: 95
5+
# Android-only: alpha transparency + sRGB vs Display-P3 wide-gamut. Color
6+
# fidelity needs a screenshot, so we assert load status only. Flaky on the iOS
7+
# E2E job, so guarded to Android; iOS skips this flow (empty=pass).
8+
- runFlow:
9+
when:
10+
platform: Android
11+
commands:
12+
- runFlow: ./helpers/launch-app-and-search.yml
13+
- inputText:
14+
text: 'Image'
15+
- assertVisible:
16+
id: 'Image'
17+
- tapOn:
18+
id: 'Image'
19+
- assertVisible:
20+
id: 'example_search'
21+
- tapOn:
22+
id: 'example_search'
23+
- inputText: 'Wide Gamut'
24+
- hideKeyboard
25+
- scrollUntilVisible:
26+
element:
27+
id: 'image-wide-gamut'
28+
direction: DOWN
29+
speed: 40
30+
timeout: 10000
31+
- extendedWaitUntil:
32+
visible: 'alpha: loaded'
33+
timeout: 15000
34+
- scrollUntilVisible:
35+
element: 'sRGB: loaded'
36+
direction: DOWN
37+
speed: 40
38+
timeout: 20000
39+
# External URL; accept loaded or error.
40+
- scrollUntilVisible:
41+
element: 'P3: (loaded|error)'
42+
direction: DOWN
43+
speed: 40
44+
timeout: 20000
45+
# Change this to takeScreenshot when you want to update the screenshot
46+
- assertScreenshot:
47+
path: screenshots/image-wide-gamut-${maestro.platform}
48+
cropOn:
49+
id: 'image-wide-gamut'
50+
thresholdPercentage: 95
Binary file not shown.
-118 KB
Binary file not shown.

0 commit comments

Comments
 (0)