JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 739952
  • Score
    100M100P100Q180940F
  • License MIT

Enable DOM in Node.js

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.

Status

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