Description
@testing-library/jest-dom
version: 5.11.0node
version: 12.14.1yarn
version: 1.21.1
What you did:
I converted several tests of the project I work on, which were using manual queries with container
and querySelector
, to use screen
prioritizing the query byRole
as recommended.
What happened:
There are some timeout errors when I run some tests after the conversion to use screen
and the byRole
selector.
Reproduction:
I made a small example to demonstrate the difference in ms in a small case, like a table with 8 cells, when using the query byRole
compared to byText
.
Problem description:
At the moment there is a certain performance problem with the byRole
selector, which even causes a timeout problem in tests, something that does not happen with other selectors such as byText
.
Below is the time it takes to run a test on the project I work on when using the byRole
query (in which there is a timeout error in some moments for taking too long).
Then, the time it takes to perform the same test, but using the byText
selector. I've run the test several times this way and with this selector there is no timeout, in addition to being much faster.
Suggested solution:
I believe that for now the solution would be not to suggest the query byRole
as a priority, at least until there are some more performance improvements to get closer to the other selectors and avoid timeouts.
I apologize because I did not get to look at the code in depth to try to understand a little if there is a way to bring about an improvement in byRole
. I am also aware of the benefits that this selector brings and I am willing to waste more time to run the tests to use it, however the time difference is still large and causing timeout errors. Thank you in advance!!!