domJSON icon indicating copy to clipboard operation
domJSON copied to clipboard

Cannot import this inside jest tests

Open evandrocoan opened this issue 5 years ago • 1 comments

I got this error:

>npx jest
 FAIL  src/reviewer.test.ts (5.44s)
  × renders test site (23ms)

  ● renders test site

    TypeError: Cannot read property 'href' of undefined

       7 |
    >  8 |     const domJSON = require('domjson');
         |                     ^

      at node_modules/domjson/dist/domJSON.js:19:28
      at node_modules/domjson/dist/domJSON.js:7:23
      at Object.<anonymous> (node_modules/domjson/dist/domJSON.js:15:3)
      at Object.<anonymous> (src/reviewer.test.ts:8:21)

If I import require('jsdom-global')() as suggested on https://github.com/azaslavsky/domJSON/issues/26 (Usage w/ Jsdom: TypeError: Cannot read property 'href' of undefined), jest breaks on my tear down with this:

 FAIL  src/reviewer.test.ts
  ● Test suite failed to run

    TypeError: Illegal invocation

      at removeEventListener (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:131:15)

evandrocoan avatar Apr 17 '20 04:04 evandrocoan

The problem lies with JSDOM and its implementation of the DOM Location API, not with this library.

What jest have to fix with his JSDOM implementation? (so I can report back there), related to:

  1. https://github.com/facebook/jest/issues/9833 - The window parameter has this location attribute
  2. https://github.com/jsdom/jsdom/issues/512 - document.domain cannot be set and is incorrect if window.location is set
  3. https://github.com/jsdom/jsdom/issues/2121 - TypeError: Cannot read property '_location' of null

evandrocoan avatar Apr 17 '20 04:04 evandrocoan