bamlab / bamlab/react-native-project-config
[RFC]: testing-library-eslint-plugin/prefer-query-matchers
- Dominant language
- TypeScript
- Stars
- 9
- Forks
- 0
- Avg merge
- 10h 29m
- Merged PRs (30d)
- 2
Description
### Why?
This rules helps ensure that we use getBy matchers when we want to assert element exists, are check, are accessible etc and queryBy only when elements don't exist. This is our standard for clear code and easy debugging in tests.
Issues so far:
- it does not seem to work with findBy for now
- nor does it wok with "not" assertions (I'd like to use queryBy only for "not.toBeOnTheScreen"
### Rule Documentation 📜
https://github.com/testing-library/eslint-plugin-testing-library/blob/main/docs/rules/prefer-query-matchers.md
### Config Selection 🛠
`tests`
### (Optional) Additional Details 📝
Here is a possible configuration for this rule
```js
'testing-library/prefer-query-matchers': [
2,
{
validEntries: [
{ matcher: 'toBeChecked', query: 'get' },
{ matcher: 'toHaveAccessibleName', query: 'get' },
{ matcher: 'toBeBusy', query: 'get' },
{ matcher: 'toBeSelected', query: 'get' },
{ matcher: 'toBeExpanded', query: 'get' },
{ matcher: 'toBePartiallyChecked', query: 'get' },
{ matcher: 'toHaveDisplayValue', query: 'get' },
{ matcher: 'toHaveTextContent', query: 'get' },
{ matcher: 'toHaveStyle', query: 'get' },
{ matcher: 'toHaveProp', query: 'get' },
{ matcher: 'toContainElement', query: 'get' },
{ matcher: 'toBeEnabled', query: 'get' },
{ matcher: 'toBeDisabled', query: 'get' },
{ matcher: 'toBeEmptyElement', query: 'get' },
],
},
],
```
Contributor guide
Assessment
This issue has not been assessed yet.