diff --git a/src/index.ts b/src/index.ts index c5f683c..bab597d 100755 --- a/src/index.ts +++ b/src/index.ts @@ -4,7 +4,7 @@ import { installCommonGlobals } from "jest-util"; import mock, { ModuleMocker } from "jest-mock"; import { JestFakeTimers as FakeTimers } from "@jest/fake-timers"; import { JestEnvironment, EnvironmentContext } from "@jest/environment"; -import { JSDOM, VirtualConsole } from "jsdom"; +import { JSDOM, VirtualConsole, ResourceLoader } from "jsdom"; // The `Window` interface does not have an `Error.stackTraceLimit` property, but // `JSDOMEnvironment` assumes it is there. @@ -23,11 +23,16 @@ class JSDOMEnvironment implements JestEnvironment { moduleMocker: ModuleMocker | null; constructor(config: Config.ProjectConfig, options: EnvironmentContext = {}) { + // This handles advanced configurations like `userAgent` + // https://github.com/jsdom/jsdom#advanced-configuration + const resourceLoader = new ResourceLoader(config.testEnvironmentOptions); + this.dom = new JSDOM("", { pretendToBeVisual: true, runScripts: "dangerously", url: config.testURL, virtualConsole: new VirtualConsole().sendTo(options.console || console), + resources: resourceLoader, ...config.testEnvironmentOptions, }); const global = (this.global = this.dom.window.document.defaultView as Win);