testing-library/eslint-plugin-testing-library

Support React Native events in prefer-user-event

Opened this issue · 3 comments

What rule do you want to change?

prefer-user-event

Does this change cause the rule to produce more or fewer warnings?

More warnings

How will the change be implemented?

Add more fireEvent -> userEvent mappings.

React Native Testing Library has its own fireEvent function and the same idea of proposing to use userEvent if possible.

According to the docs, it's recommended to use:

  • User Event press instead of fireEvent.press
  • User Event type instead of fireEvent.changeText
  • User Event scrollTo instead of fireEvent.scroll

Example code

fireEvent.press(screen.getByText('Press me'))

How does the current rule affect the code?

It doesn't suggest any changes to fireEvent calls for React Native projects.

How will the new rule affect the code?

It'll suggest to use User Event as per the docs.

Anything else?

No response

Do you want to submit a pull request to change the rule?

Yes

@ddrozdov This plugin (currently) doesn't support @testing-library/react-native.

I'll let @Belco90 decide what to do with this, but imo we should not add this and add full support in 1 go instead

Well, it actually works fine out of the box for our project, just some checks are missing which is anyway normal for a linter as there's always room for improvement :)

Or am I missing something important that is required to declare React Native support?

@ddrozdov I just think we should make sure we take time to check if all rules are supporting RN before say we officially support RN in this plugin

For the least I think it means we would also need to merge #956, but there's probably other things as well