From 22a8afac7454cfb776a550abc498ed47c299261d Mon Sep 17 00:00:00 2001 From: Satyajit Sahoo Date: Fri, 15 Jan 2021 11:35:29 +0100 Subject: [PATCH] feat: don't hardcode header back test ID BREAKING CHANGE: Now the back button test ID can be customized using headerBackTestID option --- packages/stack/src/types.tsx | 8 ++++++++ packages/stack/src/views/Header/HeaderBackButton.tsx | 3 ++- packages/stack/src/views/Header/HeaderSegment.tsx | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/stack/src/types.tsx b/packages/stack/src/types.tsx index 959de30235..037006e9d3 100644 --- a/packages/stack/src/types.tsx +++ b/packages/stack/src/types.tsx @@ -147,6 +147,10 @@ export type StackHeaderOptions = { * Accessibility label for the header back button. */ headerBackAccessibilityLabel?: string; + /** + * ID to locate this back button in tests. + */ + headerBackTestID?: string; /** * Title string used by the back button on iOS. Defaults to the previous scene's `headerTitle`. * Use `headerBackTitleVisible: false` to hide it. @@ -449,6 +453,10 @@ export type StackHeaderLeftButtonProps = { * Accessibility label for the button for screen readers. */ accessibilityLabel?: string; + /** + * ID to locate this button in tests. + */ + testID?: string; /** * Style object for the button. */ diff --git a/packages/stack/src/views/Header/HeaderBackButton.tsx b/packages/stack/src/views/Header/HeaderBackButton.tsx index ef0e3a8517..e666597194 100644 --- a/packages/stack/src/views/Header/HeaderBackButton.tsx +++ b/packages/stack/src/views/Header/HeaderBackButton.tsx @@ -30,6 +30,7 @@ export default function HeaderBackButton({ titleLayout, truncatedLabel = 'Back', accessibilityLabel = label && label !== 'Back' ? `${label}, back` : 'Go back', + testID, style, }: Props) { const { dark, colors } = useTheme(); @@ -155,7 +156,7 @@ export default function HeaderBackButton({ accessible accessibilityRole="button" accessibilityLabel={accessibilityLabel} - testID="header-back" + testID={testID} delayPressIn={0} onPress={disabled ? undefined : handlePress} pressColor={pressColorAndroid} diff --git a/packages/stack/src/views/Header/HeaderSegment.tsx b/packages/stack/src/views/Header/HeaderSegment.tsx index 49ce75b3b5..6806125196 100644 --- a/packages/stack/src/views/Header/HeaderSegment.tsx +++ b/packages/stack/src/views/Header/HeaderSegment.tsx @@ -163,6 +163,7 @@ export default function HeaderSegment(props: Props) { headerTruncatedBackTitle: truncatedLabel, headerPressColorAndroid: pressColorAndroid, headerBackAccessibilityLabel: backAccessibilityLabel, + headerBackTestID: backTestID, headerBackAllowFontScaling: backAllowFontScaling, headerTitleAllowFontScaling: titleAllowFontScaling, headerTitleStyle: customTitleStyle, @@ -292,6 +293,7 @@ export default function HeaderSegment(props: Props) { backImage, pressColorAndroid, accessibilityLabel: backAccessibilityLabel, + testID: backTestID, allowFontScaling: backAllowFontScaling, onPress: onGoBack, labelVisible: headerBackTitleVisible,