From bb4808bc92af250c2a111bc0fa750ee2cc0cdb97 Mon Sep 17 00:00:00 2001 From: Nicola Corti Date: Fri, 11 Sep 2026 09:13:53 -0700 Subject: [PATCH] Add deep-link Maestro flows for RNTester basics (#58480) Summary: Add Maestro coverage for portable RNTester interaction scenarios using direct example deep links. The flows cover alerts, animations, appearance, filters, text input, and touchables without screenshot baselines. Changelog: [Internal] Differential Revision: D119484759 --- packages/rn-tester/.maestro/alert.yml | 24 ++++++++++ .../.maestro/animated-fade-in-view.yml | 21 +++++++++ packages/rn-tester/.maestro/appearance.yml | 14 ++++++ .../.maestro/filter-animated-blur.yml | 15 +++++++ .../.maestro/textinput-uncontrolled.yml | 19 ++++++++ packages/rn-tester/.maestro/touchable.yml | 44 +++++++++++++++++++ 6 files changed, 137 insertions(+) create mode 100644 packages/rn-tester/.maestro/alert.yml create mode 100644 packages/rn-tester/.maestro/animated-fade-in-view.yml create mode 100644 packages/rn-tester/.maestro/appearance.yml create mode 100644 packages/rn-tester/.maestro/filter-animated-blur.yml create mode 100644 packages/rn-tester/.maestro/textinput-uncontrolled.yml create mode 100644 packages/rn-tester/.maestro/touchable.yml diff --git a/packages/rn-tester/.maestro/alert.yml b/packages/rn-tester/.maestro/alert.yml new file mode 100644 index 000000000000..513029744ee8 --- /dev/null +++ b/packages/rn-tester/.maestro/alert.yml @@ -0,0 +1,24 @@ +appId: ${APP_ID} # iOS: com.meta.RNTester.localDevelopment | Android: com.facebook.react.uiapp +--- +- launchApp +- extendedWaitUntil: + visible: 'Components' + timeout: 30000 +- openLink: rntester://example/AlertExample/default-button +- extendedWaitUntil: + visible: + id: 'alert-with-default-button' + timeout: 10000 +- tapOn: + id: 'alert-with-default-button' +- assertVisible: 'An external USB drive has been detected!' +- tapOn: 'OK' +- openLink: rntester://example/AlertExample/three-buttons +- extendedWaitUntil: + visible: + id: 'alert-with-three-buttons' + timeout: 10000 +- tapOn: + id: 'alert-with-three-buttons' +- assertVisible: 'Do you want to save your changes?' +- tapOn: 'Cancel' diff --git a/packages/rn-tester/.maestro/animated-fade-in-view.yml b/packages/rn-tester/.maestro/animated-fade-in-view.yml new file mode 100644 index 000000000000..e7b96d2e4794 --- /dev/null +++ b/packages/rn-tester/.maestro/animated-fade-in-view.yml @@ -0,0 +1,21 @@ +appId: ${APP_ID} # iOS: com.meta.RNTester.localDevelopment | Android: com.facebook.react.uiapp +--- +- launchApp +- extendedWaitUntil: + visible: 'Components' + timeout: 30000 +- openLink: rntester://example/Animated/fadeInView +- extendedWaitUntil: + visible: + id: 'toggle-button' + timeout: 10000 +- assertVisible: + id: 'fade-in-view' +- tapOn: + id: 'toggle-button' +- assertNotVisible: + id: 'fade-in-view' +- tapOn: + id: 'toggle-button' +- assertVisible: + id: 'fade-in-view' diff --git a/packages/rn-tester/.maestro/appearance.yml b/packages/rn-tester/.maestro/appearance.yml new file mode 100644 index 000000000000..08c022a98951 --- /dev/null +++ b/packages/rn-tester/.maestro/appearance.yml @@ -0,0 +1,14 @@ +appId: ${APP_ID} # iOS: com.meta.RNTester.localDevelopment | Android: com.facebook.react.uiapp +--- +- launchApp +- extendedWaitUntil: + visible: 'Components' + timeout: 30000 +- assertVisible: + id: 'components-tab' +- assertVisible: + id: 'apis-tab' +- openLink: rntester://example/AppearanceExample +- extendedWaitUntil: + visible: 'useColorScheme hook' + timeout: 10000 diff --git a/packages/rn-tester/.maestro/filter-animated-blur.yml b/packages/rn-tester/.maestro/filter-animated-blur.yml new file mode 100644 index 000000000000..b3e9368c652e --- /dev/null +++ b/packages/rn-tester/.maestro/filter-animated-blur.yml @@ -0,0 +1,15 @@ +appId: ${APP_ID} # iOS: com.meta.RNTester.localDevelopment | Android: com.facebook.react.uiapp +--- +- launchApp +- extendedWaitUntil: + visible: 'Components' + timeout: 30000 +- openLink: rntester://example/Filter/animated-blur +- extendedWaitUntil: + visible: + id: 'animated-blur-button' + timeout: 10000 +- tapOn: + id: 'animated-blur-button' +- assertVisible: + id: 'animated-blur-view' diff --git a/packages/rn-tester/.maestro/textinput-uncontrolled.yml b/packages/rn-tester/.maestro/textinput-uncontrolled.yml new file mode 100644 index 000000000000..ff85bbe42833 --- /dev/null +++ b/packages/rn-tester/.maestro/textinput-uncontrolled.yml @@ -0,0 +1,19 @@ +appId: ${APP_ID} # iOS: com.meta.RNTester.localDevelopment | Android: com.facebook.react.uiapp +--- +- launchApp +- extendedWaitUntil: + visible: 'Components' + timeout: 30000 +- openLink: rntester://example/TextInput/uncontrolledComponent +- extendedWaitUntil: + visible: + id: 'uncontrolled-textinput' + timeout: 10000 +- tapOn: + id: 'uncontrolled-textinput' +- eraseText +- inputText: 'New value' +- hideKeyboard +- assertVisible: + id: 'uncontrolled-textinput' + text: 'New value' diff --git a/packages/rn-tester/.maestro/touchable.yml b/packages/rn-tester/.maestro/touchable.yml new file mode 100644 index 000000000000..b027f447cdfc --- /dev/null +++ b/packages/rn-tester/.maestro/touchable.yml @@ -0,0 +1,44 @@ +appId: ${APP_ID} # iOS: com.meta.RNTester.localDevelopment | Android: com.facebook.react.uiapp +--- +- launchApp +- extendedWaitUntil: + visible: 'Components' + timeout: 30000 +- openLink: rntester://example/TouchableExample/feedback-events +- extendedWaitUntil: + visible: + id: 'touchable_feedback_events_button' + timeout: 10000 +- tapOn: + id: 'touchable_feedback_events_button' +- assertVisible: + id: 'touchable_feedback_events_console' +- openLink: rntester://example/TouchableExample/highlight +- extendedWaitUntil: + visible: + id: 'touchable_highlight_text_button' + timeout: 10000 +- tapOn: + id: 'touchable_highlight_text_button' +- assertVisible: + id: 'touchable_highlight_console' + text: 'TouchableHighlight onPress' +- openLink: rntester://example/TouchableExample/hit-slop +- extendedWaitUntil: + visible: + id: 'touchable_hit_slop_button' + timeout: 10000 +- tapOn: + id: 'touchable_hit_slop_button' +- assertVisible: + id: 'touchable_hit_slop' +- openLink: rntester://example/TouchableExample/without-feedback +- extendedWaitUntil: + visible: + id: 'touchable_without_feedback_button' + timeout: 10000 +- tapOn: + id: 'touchable_without_feedback_button' +- assertVisible: + id: 'touchable_without_feedback_console' + text: 'TouchableWithoutFeedback onPress'