I've been using jasmine to unit test my javascript the last few
months. I've been running these tests with node (v4) jsdom/jasmine-
node/jasmine-jquery

Everything was fine until I had to upgrade from node v4 -I did a make
install from the 6.11 build and noticed that I had to update jsdom.

jsdom and or jsdom + node seems to have changed how it views the
"window" keyword.

Previously the code below would run no problem because window was
[object DOMWindow] but since the upgrade it's become [object global]
(and no longer respects my jasmine mock)

    if (window.confirm("unit testing?")) {
      this.ajaxStuff();
    }

If anyone knows why I get a global now instead of DOMWindow that would
be great, but even bigger might be how I should protect myself from
the "window" keyword itself.

I'm only writing browser based javascript so I don't see a huge
problem with using window, but if I need to abstract it should I just
make it an input for each JS object I'm building so I don't have to
patch it as I'm doing now? Or is this a non issue for browser based
javascript code?

**test snippet for the above

    it("should do ajax stuff and make something hidden", function(){
      window = jsdom.jsdom("<html><head></head><body></body></
html>").createWindow();
      var sut = new SomeObjectUnderTest();
      expect($jqueryObject).toBeVisible();
      spyOn(window, 'confirm').andReturn(true);
      sut.doSomeClickEvent();
      expect($('#something')).not.toBeVisible();
    });

(cross posted from stackoverflow) - link below

http://stackoverflow.com/questions/10304494/how-to-properly-isolate-jasmine-unit-tests-from-window-using-jsdom

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to