Miałem podobny problem podczas korzystania z projektu wymagającego adresu URL (location.href). Możesz skonfigurować żart z testURL w swojej konfiguracji.
Oto, co możesz umieścić w package.json (jeśli tak skonfigurujesz żart).
"jest": {
...other config,
"testURL": "http://localhost:8080/Dashboard/index.html"
}
testURL Doc
Jeśli potrzebujesz bardziej szczegółowych zmian jsdom można zainstalować jsdom siebie i import i skonfigurować go oddzielnie od żartu. Oto przykład:
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
Od jsdom V11, 'window.location' obiektowo stać nie konfigurowalny, a tym samym nie mogą być modyfikowane z 'Object.defineProperty()' już. – Blackus