diff --git a/packages/jest-environment-jsdom/src/index.ts b/packages/jest-environment-jsdom/src/index.ts index b5b15c19112b..230f435bf349 100644 --- a/packages/jest-environment-jsdom/src/index.ts +++ b/packages/jest-environment-jsdom/src/index.ts @@ -14,7 +14,7 @@ import { LolexFakeTimers, } from '@jest/fake-timers'; import {EnvironmentContext, JestEnvironment} from '@jest/environment'; -import {DOMWindow, JSDOM, VirtualConsole} from 'jsdom'; +import {JSDOM, VirtualConsole} from 'jsdom'; // The `Window` interface does not have an `Error.stackTraceLimit` property, but // `JSDOMEnvironment` assumes it is there. @@ -27,7 +27,6 @@ type Win = Window & class JSDOMEnvironment implements JestEnvironment { dom: JSDOM | null; - vm: DOMWindow | null; fakeTimers: LegacyFakeTimers | null; fakeTimersLolex: LolexFakeTimers | null; global: Win; @@ -43,8 +42,6 @@ class JSDOMEnvironment implements JestEnvironment { ...config.testEnvironmentOptions, }); - this.vm = this.dom.getInternalVMContext(); - const global = (this.global = this.dom.window.document.defaultView as Win); if (!global) { throw new Error('JSDOM did not return a Window object'); @@ -127,21 +124,22 @@ class JSDOMEnvironment implements JestEnvironment { // @ts-ignore this.global = null; this.dom = null; - this.vm = null; this.fakeTimers = null; this.fakeTimersLolex = null; } runScript(script: Script): T | null { - if (this.vm) { - return script.runInContext(this.vm); + if (this.dom) { + return script.runInContext(this.dom.getInternalVMContext()); } - return null; } getVmContext() { - return this.vm; + if (this.dom) { + return this.dom.getInternalVMContext(); + } + return null; } }