eslint-plugin-testing-library: False positives with testing-library/prefer-presence-queries
Plugin version
v5.0.0
ESLint version
v8.2.0
Node.js version
14.18.0
npm/yarn version
1.22.17
Operating system
Big Sur
Bug description
Generally I like this rule but we have to disable it in quite a few places due to false positives with toBeNull.
Steps to reproduce
Examples:
expect(queryTooltip(screen.getByText('Some text'))).toBeNull();
expect(within(screen.getByRole('dialog')).queryByText('Some text')).toBeNull();
expect(screen.getByText('Some text').getAttribute('disabled')).toBeNull();
Error output/screenshots
No response
ESLint configuration
{
files: ['src/**/*.test.[tj]s?(x)', 'src/test/**/*.[tj]s?(x)'],
env: {
jest: true,
browser: true,
},
plugins: ['eslint-plugin-jest', 'eslint-plugin-testing-library'],
extends: ['plugin:jest/recommended', 'plugin:testing-library/react'],
rules: {
// warning are under migration
'testing-library/prefer-screen-queries': 'warn',
'testing-library/no-render-in-setup': 'warn',
'testing-library/render-result-naming-convention': 'warn',
'testing-library/no-wait-for-multiple-assertions': 'warn',
'testing-library/no-node-access': 'off'
},
},
Rule(s) affected
testing-library/prefer-presence-queries
Anything else?
No response
Do you want to submit a pull request to fix this bug?
No
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Reactions: 2
- Comments: 17 (12 by maintainers)
Commits related to this issue
- fix: support configuration for prefer-presence-queries (#518) — committed to themagickoala/eslint-plugin-testing-library by deleted user 2 years ago
- feat(prefer-presence-queries): add `absence` & `presence` options (#557) * fix: support configuration for prefer-presence-queries (#518) * test(prefer-presence-queries): destructure options in the... — committed to testing-library/eslint-plugin-testing-library by themagickoala 2 years ago
Not sure if I understood your example correctly. I’m confused about the
const rtlNode = ... // get this somehow
line, could you elaborate on this?The JSDoc description is correct, so you should get the identifier for the last chained node. If that’s not the case, we have a bug, but I didn’t fully understand your example.
They are! It’s difficult to spot that. If you go to the
tests/create-testing-library-rule.test.ts
file, you’ll see tests for a fake rule. We use this as some sort of unit tests for our internal utils, mainly.Hey @josias-r, this is a different problem. Could you move it to a different issue? Thanks.