eslint-plugin-jest-dom
eslint-plugin-jest-dom copied to clipboard
toBeChecked suggested to replace check for aria-checked="mixed"
-
eslint-plugin-jest-dom
version: 2.1.0
Relevant code or config
expect(element).toHaveAttribute("aria-checked", "mixed")
What you did:
I want to assert that the checked status is "mixed". It generally is only "true" or "false", but it can also be "mixed".
What happened:
The rule to prefer toBeChecked
kicked in, but I cannot assert what I want with that custom matcher.
Suggested solution:
I think we need to either make an exception here with "mixed"
, but that would also be a problem, because for legibility in my test I'd like to use the same kind of assertion as my checkbox state changes. So it would not be ideal to use toBeChecked
for some cases but not others with only a couple of lines of difference.
Or maybe there's nothing to do here. The "mixed" case is so rare, that maybe what we need to do is to disable the rule for that line. But I still wanted to discuss.
hmm interesting, wasn't aware of that. I'd say there are a few options
- maybe open a PR on jest-dom to add support for
toBeChecked('mixed')
then this plugin can use that. - just look for that special case in this plugin
- yeah just disable it for that line.
I'd prefer to do 1 or 2, but don't have the cycles right now if you'd like to open a PR.
Yup, I thought something along the lines of no. 1, could work. Will propose it in jest-dom.
We now have .toBePartiallyChecked
as of v5.8.0 just released. See testing-library/jest-dom#249.
So this issue can be now about making the eslint plugin aware of this for as a replacement for .toHaveAttribute("aria-checked", "mixed")
.
Care to open a PR @gnapse ?