Skip to content

False positive for no-node-access when accessing variable declaration's property children, activeElement, firstChild etc #683

Open
@sjarva

Description

@sjarva

Have you read the Troubleshooting section?

Yes

Plugin version

v5.9.1

ESLint version

v8.23.0

Node.js version

16.10.0

package manager and version

npm 7.24.0

Operating system

macOS Big Sur, version 11.6

Bug description

Extracted to an issue of its own from discussion in #386.

Steps to reproduce

  1. Have a unit test with a variable declaration that has a children property
  2. Access that property in some part of the test (e.g. expect statement)
  3. Run linter and see an error

For example, here is a test code snippet that produces the error:

import { render } from '@testing-library/react'; // Does not matter which library, this error happens with all

const navItemWithChildren = {
	title: 'Cars',
	children: [
		{
		title: 'Add car',
		},
		{
		title: 'All cars',
		},
	],
	};

render(<NavComponent itemWithChildren={navItemWithChildren} />)
expect(
	screen.getByText(navItemWithChildren.children[0].title),
	).toBeVisible();

Error output/screenshots

18:42 error Avoid direct Node access. Prefer using the methods from Testing Library testing-library/no-node-access

ESLint configuration

Recommend rules

Rule(s) affected

no-node-access

Anything else?

children and all other property names listed in PROPERTIES_RETURNING_NODES in lib/util/index.ts should not produce this error, if they happen to be properties of some variable declaration.

Do you want to submit a pull request to fix this bug?

No

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions