Skip to content

Commit

Permalink
test: setup jsdom before running tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kevicency committed Jul 13, 2016
1 parent 5903386 commit ac8a841
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 19 deletions.
20 changes: 17 additions & 3 deletions bin/run-tests.js
Expand Up @@ -8,14 +8,12 @@ var hook = require('css-modules-require-hook')
var sass = require('node-sass')
var path = require('path')
var glob = require('glob')
var jsdom = require('jsdom').jsdom

var cwd = path.resolve(__dirname, '..')
var nodeModulesPath = path.resolve(cwd, 'node_modules')

var nodeModulesPlaceholder = /^~/
var args = (function(slice) {
return slice.length === 0 ? ['src/**/__tests__/*_test.js'] : slice
})(process.argv.slice(2))

hook({
extensions: ['.scss'],
Expand All @@ -38,6 +36,22 @@ hook({
}
})

// setup jsdom
global.document = jsdom('')
global.window = document.defaultView
Object.keys(document.defaultView).forEach(function(property) {
if (typeof global[property] === 'undefined') {
global[property] = document.defaultView[property];
}
})
global.navigator = {
userAgent: 'node.js'
}

var args = (function(slice) {
return slice.length === 0 ? ['src/**/__tests__/*_test.js'] : slice
})(process.argv.slice(2))

args.forEach(function (arg) {
glob(arg, { cwd: cwd }, function (err, files) {
if (err) { throw err }
Expand Down
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -61,6 +61,7 @@
"express": "^4.13.4",
"extract-text-webpack-plugin": "^1.0.1",
"glob": "^7.0.3",
"jsdom": "^9.4.1",
"node-sass": "^3.6.0",
"nyc": "^6.6.1",
"office-ui-fabric": "^2.6.1",
Expand Down
36 changes: 20 additions & 16 deletions src/util/__tests__/events_test.js
Expand Up @@ -7,36 +7,40 @@ const eventMap = {
'bar': function barHandler() {}
}

const setOnDocument = (property, value) => {
const backup = global.document[property]

global.document[property] = value

return () => { global.document[property] = backup }
}

test('events#addEventsToDocument', t => {
t.plan(6)

global.document = {
addEventListener: (key, listener, capture) => {
t.ok(Object.keys(eventMap).indexOf(key) !== -1, `key ${key}`)
t.equal(listener, eventMap[key], 'listener for ${key}')
t.equal(capture, false, 'capture')
}
}
const restore = setOnDocument('addEventListener', (key, listener, capture) => {
t.ok(Object.keys(eventMap).indexOf(key) !== -1, `key ${key}`)
t.equal(listener, eventMap[key], `listener for ${key}`)
t.equal(capture, false, 'capture')
})

sut.addEventsToDocument(eventMap)

delete global.document
restore()
})

test('events#removeEventListener', t => {
t.plan(6)

global.document = {
removeEventListener: (key, listener, capture) => {
t.ok(Object.keys(eventMap).indexOf(key) !== -1, `key ${key}`)
t.equal(listener, eventMap[key], 'listener for ${key}')
t.equal(capture, false, 'capture')
}
}
const restore = setOnDocument('removeEventListener', (key, listener, capture) => {
t.ok(Object.keys(eventMap).indexOf(key) !== -1, `key ${key}`)
t.equal(listener, eventMap[key], `listener for ${key}`)
t.equal(capture, false, 'capture')
})

sut.removeEventsFromDocument(eventMap)

delete global.document
restore()
})

test('events#pauseEvent', t => {
Expand Down

0 comments on commit ac8a841

Please sign in to comment.