EDIT: Updated to reflect my latest findings
@testing-library/dom version: 7.29.4
- Testing Framework and version: Jest 26.6.3
- DOM Environment: jsdom 16.4.0
- React version: happens on both 16.13.1 and 17.0.1
- Node version: v12.18.3
Relevant code or config:
import React from 'react';
import { render } from '@testing-library/react';
import '@testing-library/jest-dom';
describe('test test', () => {
it('example test', () => {
const { queryAllByText } = render(
<div>
<div>test thing</div>
<div>test thing</div>
</div>
);
expect(queryAllByText('test thing')).toEqual(123);
});
});
What you did:
I was trying to query deep element for clicking it. The page contains two matching components with the same text
What happened:
I'm getting following:
(node:38467) UnhandledPromiseRejectionWarning: TypeError: Converting circular structure to JSON
--> starting at object with constructor 'HTMLDivElement'
| property '__reactInternalInstance$e23phu313qm' -> object with constructor 'FiberNode'
--- property 'stateNode' closes the circle
at stringify (<anonymous>)
at writeChannelMessage (internal/child_process/serialization.js:117:20)
at process.target._send (internal/child_process.js:779:17)
at process.target.send (internal/child_process.js:677:19)
at reportSuccess (/Users/path/to/project/node_modules/jest-runner/node_modules/jest-worker/build/workers/processChild.js:67:11)
Reproduction:
- run the above example with
jest --watch (babel and jest configs can be very basic or even default)
- either restart Jest, or change the file to trigger second run
- You should get the error above
The error happens when Jest runs the snippet for second time or more. It can be resolved by wiping the query cache using jest --clearCache, but it reappears on second test run.
Problem description:
The test crashes and leaves Jest hanging. This does not happen if I'm not querying the component with anything, but does happen when querying, at least with queryByText and queryAllByText.
Suggested solution:
The above example should not crash. I hope the stacktrace and the description gives enough clue on what might be the culprit here.
EDIT: Updated to reflect my latest findings
@testing-library/domversion: 7.29.4Relevant code or config:
What you did:
I was trying to query deep element for clicking it. The page contains two matching components with the same text
What happened:
I'm getting following:
Reproduction:
jest --watch(babel and jest configs can be very basic or even default)The error happens when Jest runs the snippet for second time or more. It can be resolved by wiping the query cache using
jest --clearCache, but it reappears on second test run.Problem description:
The test crashes and leaves Jest hanging. This does not happen if I'm not querying the component with anything, but does happen when querying, at least with
queryByTextandqueryAllByText.Suggested solution:
The above example should not crash. I hope the stacktrace and the description gives enough clue on what might be the culprit here.