'How to pass document variable to ES6 Module during Jasmine testing
I want to test if a function in a module generated something in document but I am having trouble defining the document variable. I have simulated it jsdom but I am unable to define it in module.
In my actual project, I use the document, window and MathJax library globally and I don't want to pass it to classes through the constructor unless there is no other way.
Example of a class I want to test:
// example.mjs
export class Example {
    createElement() {
        document.createElement("div")
    }
}
Test file:
import {Example} from './example.mjs';
import {JSDOM} from "jsdom";
describe("Example", function () {
    it('should create div', function () {
        const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
        document = dom.window.document; //is it possible to make this defined in all modules
        new Example().createElement() // document is not defined
    });
})
My question is, is it possible to somehow make the document variable defined, so that it can be referenced in the Example class or do I have to pass it in the constructor?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|
