react-native-testing-library icon indicating copy to clipboard operation
react-native-testing-library copied to clipboard

Discussion: RNTL v13 breaking changes

Open mdjastrzebski opened this issue 2 years ago • 5 comments

Compatibility

React 19

The v13 release will most likely happen for React 19 release for React Native. See #1593 for more info.

RN versions support

~~Drop support for older versions of React Native versions - perhaps in line with supported RN version (0.70 atm). We should have clear information about supported RN versions and corresponding RNTL versions.~~

~~The reasoning behind is that support for older versions for RN requires additional checks and testing that would reduce our capacity to do more useful stuff and that the users on older version of RN should generally update their RN version first and only after that RNTL version.~~

  • ~~this also includes dropping React 17 support~~

Drop support for React 18 and lower, and focus just on React 19. This will require introduction of versioned documentation.

Using JSX transform

Based on #1492, we could use modern JSX transform by default. We should however assess that it would work with all supported RN versions.

Remove deprecated stuff

  • getByAccessibilityState, getByAccessibilityValue - already marked as deprecated
  • remove aliases getByA11yHint and getByAccessibilityHint and keep only one name: getByHintText

API improvements

  • Restrict allowed role value for *byRole queries to RN-supported roles #1527.
  • Unify accessible name handling in *ByRole with the new toHaveAccessibleName matcher. Basically, if element has explicit label (aria-label, accessibilityLabel, aria-labelledby, accessibilityLabelledBy) them name should match only that, and name derived from text content should be used only in the absence of explicit label.

mdjastrzebski avatar Sep 20 '23 13:09 mdjastrzebski

Getting in line with RN official support makes sense if there are breaking changes necessary

thymikee avatar Sep 20 '23 14:09 thymikee

Also agree with those two. We could also change the type of byRole queries as discussed in #1527

pierrezimmermannbam avatar Nov 14 '23 13:11 pierrezimmermannbam

I agree as well :)

MattAgn avatar Nov 14 '23 15:11 MattAgn

@pierrezimmermannbam @MattAgn added point about accessible name matching tweak for *ByRole query.

mdjastrzebski avatar Nov 14 '23 16:11 mdjastrzebski

@pierrezimmermannbam @MattAgn @AugustinLF added point about removing deprecated queries

mdjastrzebski avatar Nov 27 '23 22:11 mdjastrzebski