Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

I am using node 0.12.7 and "mocha": "^2.2.5" and "jsdom": "^3.1.2".

I already have jsdom installed with the project.

What is causing the error?

I was able to use jsdom-global to fix this issue. Follow the instructions in that link to install. Specifically, run

npm install --save-dev --save-exact jsdom jsdom-global

then add -r jsdom-global/register to your mocha command-line. When you re-run your tests, the window is not defined error will go away.

Where exactly do you "add -r jsdom-global/register to your mocha command-line"? Sorry, I am a total noob at this. – Josh Aug 8, 2020 at 8:24

Since I was doing too much with the window object, I just used this code to determine if I was in mocha or not.

function isMocha(){
    let context = (global || window);
    return ['afterEach','after','beforeEach','before','describe','it'].every(function(functionName){
        return context[functionName] instanceof Function;
        

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.