Package Exports
- jsdom-global
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (jsdom-global) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
jsdom-global
Enables DOM in Node.js
jsdom-global will inject document
, window
and other DOM API into your Node.js environment. Useful for tests.
Install
Requires jsdom.
npm install --save-dev --save-exact jsdom jsdom-global
Usage
Just invoke it to turn your Node.js environment into a DOM environment.
var jsdom = require('jsdom-global')
jsdom()
// you can now use the DOM
document.body.innerHTML = 'hello'
To clean up after itself, just invoke the function it returns.
var jsdom = require('jsdom-global')
var cleanup = jsdom()
// do things
cleanup()
You can also invoke it with a function block so it'll clean up afterwards.
jsdom(function () {
var $ = require('jquery')
$('body').html('hello')
})
Tape
In tape, run it before your other tests.
var test = require('tape')
// example: run your tests with `env JSDOM=1` to enable jsdom in an otherwise
// browser-only test
if (process.env.JSDOM) {
test('jsdom', (t) => {
require('jsdom-global')()
t.pass('jsdom enabled')
t.end()
})
}
Or even use the tape helper, which will accomplish the same thing:
var test = require('tape')
test('jsdom', require('jsdom-global/tape')())
Mocha
Just add it to mocha's before
and after
hooks.
before(function () {
this.jsdom = require('jsdom-global')()
})
after(function () {
this.jsdom()
})
Thanks
jsdom-global © 2016+, Rico Sta. Cruz. Released under the MIT License.
Authored and maintained by Rico Sta. Cruz with help from contributors (list).
ricostacruz.com · GitHub @rstacruz · Twitter @rstacruz