title: UnhandledPromiseRejectionWarning: TypeError: Converting circular structure to JSON with Jest + Angular
body: <p>Using the jest-preset-angular to perform the unit test, but got an warning as <code>UnhandledPromiseRejectionWarning: TypeError: Converting circular structure to JSON</code> not sure what causing the error, due to this the application is stuck and not running the other unit test.</p>
  <pre><code>PASS  src/app/pages/result/result-filter/result-filter.component.spec.ts (6.251 s)
   PASS  src/app/pages/result/search-navigation/search-navigation.component.spec.ts
   PASS  src/app/pages/result/filter-modal/filter-modal.component.spec.ts (5.699 s)
   PASS  src/app/app.component.spec.ts
   PASS  src/app/pages/test-type/test-type.component.spec.ts (12.857 s)
  (node:3280) UnhandledPromiseRejectionWarning: TypeError: Converting circular structure to JSON
      --&gt; starting at object with constructor 'Object'
      |     property 'element' -&gt; object with constructor 'Object'
      |     property 'componentProvider' -&gt; object with constructor 'Object'
      --- property 'parent' closes the circle
      at stringify (&lt;anonymous&gt;)
      at writeChannelMessage (internal/child_process/serialization.js:117:20)
      at process.target._send (internal/child_process.js:808:17)
      at process.target.send (internal/child_process.js:706:19)
      at reportSuccess (/Users/macbook/Projects/Playtime Projects/IDP/Idp.Bx.Ui/idp/node_modules/jest-worker/build/workers/processChild.js:67:11)
  (Use `node --trace-warnings ...` to show where the warning was created)
  (node:3280) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
  (node:3280) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
  (node:3281) UnhandledPromiseRejectionWarning: TypeError: Converting circular structure to JSON
      --&gt; starting at object with constructor 'Object'
      |     property 'element' -&gt; object with constructor 'Object'
      |     property 'componentProvider' -&gt; object with constructor 'Object'
      --- property 'parent' closes the circle
      at stringify (&lt;anonymous&gt;)
      at writeChannelMessage (internal/child_process/serialization.js:117:20)
      at process.target._send (internal/child_process.js:808:17)
      at process.target.send (internal/child_process.js:706:19)
      at reportSuccess (/Users/macbook/Projects/Playtime Projects/IDP/Idp.Bx.Ui/idp/node_modules/jest-worker/build/workers/processChild.js:67:11)
  (Use `node --trace-warnings ...` to show where the warning was created)
  (node:3281) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
  (node:3281) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
  (node:3279) UnhandledPromiseRejectionWarning: TypeError: Converting circular structure to JSON
      --&gt; starting at object with constructor 'Object'
      |     property 'element' -&gt; object with constructor 'Object'
      |     property 'componentProvider' -&gt; object with constructor 'Object'
      --- property 'parent' closes the circle
      at stringify (&lt;anonymous&gt;)
      at writeChannelMessage (internal/child_process/serialization.js:117:20)
      at process.target._send (internal/child_process.js:808:17)
      at process.target.send (internal/child_process.js:706:19)
      at reportSuccess (/Users/macbook/Projects/Playtime Projects/IDP/Idp.Bx.Ui/idp/node_modules/jest-worker/build/workers/processChild.js:67:11)
  (Use `node --trace-warnings ...` to show where the warning was created)
  (node:3279) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
  (node:3279) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
  
   RUNS  src/app/pages/location/location.component.spec.ts
   RUNS  src/app/pages/signup/signup.component.spec.ts
   RUNS  src/app/pages/login/login.component.spec.ts
  
  Test Suites: 10 passed, 10 of 20 total
  Tests:       16 passed, 16 total
  Snapshots:   1 obsolete, 5 passed, 5 total
  Time:        2180 s
  </code></pre>
  <p>I am not sure how to run the node --trace-warnings. Looks like it a serialization issue, even it is just a warning but not sure where is the issue. Is there any better way to find the exception</p>