-
-
Notifications
You must be signed in to change notification settings - Fork 6.6k
Labels
Milestone
Description
🐛 Bug Report
When an assertion fails where either the expected or actual value is circular, and both values are objects, jest encounters an error stating it failed to convert a circular structure to JSON, resulting in the test run not completing.
To Reproduce
it("test", () => {
const foo = {};
foo.ref = foo;
expect(foo).toEqual({});
});
Running jest gives me the following error:
(node:11685) UnhandledPromiseRejectionWarning: TypeError: Converting circular structure to JSON
--> starting at object with constructor 'Object'
--- property 'ref' closes the circle
at stringify (<anonymous>)
at writeChannelMessage (internal/child_process/serialization.js:117:20)
at process.target._send (internal/child_process.js:804:17)
at process.target.send (internal/child_process.js:702:19)
at reportSuccess (/Users/verit/basic-jsx/node_modules/jest-worker/build/workers/processChild.js:67:11)
Jest continues running indefinitely (I only tested up to ten minutes) and reports nothing regarding the test suite.
I traced this to the added failureDetails
property on error messages, landed in 26.3.0.
Expected behavior
I'd expect the test to fail and jest to complete running.
envinfo
I only tested two versions. The above error occurs on 14.9.0, but does not on 12.16.1.
System:
OS: macOS 10.15.6
CPU: (8) x64 Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz
Binaries:
Node: 14.9.0 - ~/.nodenv/versions/14.9.0/bin/node
npm: 6.14.8 - ~/.nodenv/versions/14.9.0/bin/npm
npmPackages:
jest: ^26.4.2 => 26.4.2
dalepo, dzonatan, wescopeland, ranemloc, rbordeanu and 80 more