testing-library / eslint-plugin-testing-library

ESLint plugin to follow best practices and anticipate common mistakes when writing tests with Testing Library
https://npm.im/eslint-plugin-testing-library
MIT License
992 stars 142 forks source link

Support React Native events in prefer-user-event #957

Open ddrozdov opened 2 weeks ago

ddrozdov commented 2 weeks ago

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:

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

MichaelDeBoey commented 2 weeks ago

@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

ddrozdov commented 2 weeks ago

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?

MichaelDeBoey commented 2 weeks ago

@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