Ho riscontrato un problema simile durante l'utilizzo di un progetto che richiede un URL (location.href). Puoi configurare jest con un testURL nella tua configurazione.
Ecco cosa si potrebbe inserire nel pacchetto package.json (se è così che si configura jest).
"jest": {
...other config,
"testURL": "http://localhost:8080/Dashboard/index.html"
}
testURL Doc
Se avete bisogno di modifiche più specifiche per jsdom è possibile installare jsdom se stessi e di importazione e di configurare separatamente dal scherzo. Ecco un esempio:
test.js
'use strict';
import setup from './setup';
import React from 'react';
import { mount } from 'enzyme';
import Reportlet from '../components/Reportlet.jsx';
it('Reportlet Renders',() => {
...some test stuff
});
setup.js
import jsdom from 'jsdom';
const DEFAULT_HTML = '<html><body></body></html>';
// Define some variables to make it look like we're a browser
// First, use JSDOM's fake DOM as the document
global.document = jsdom.jsdom(DEFAULT_HTML);
// Set up a mock window
global.window = document.defaultView;
global.window.location = "https://www.bobsaget.com/"
// ...Do extra loading of things like localStorage that are not supported by jsdom
fonte
2017-01-18 01:51:07
Da jsdom v11, 'window.location' oggetto diventano non configurabile, e quindi non può essere modificato con 'Object.defineProperty()' più. – Blackus