From 5c3101fee60046fa7976b3131fada8dfe9fbd53e Mon Sep 17 00:00:00 2001 From: Timmy Willison Date: Wed, 6 May 2015 16:23:00 -0700 Subject: [PATCH] Build: use different versions of jsdom for Node and iojs testing Fixes gh-2266 --- build/tasks/install_jsdom.js | 27 +++++++++++++++++++++++++++ build/tasks/node_smoke_tests.js | 2 +- package.json | 5 ++++- 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 build/tasks/install_jsdom.js diff --git a/build/tasks/install_jsdom.js b/build/tasks/install_jsdom.js new file mode 100644 index 000000000..21d67eb0e --- /dev/null +++ b/build/tasks/install_jsdom.js @@ -0,0 +1,27 @@ +module.exports = function( grunt ) { + grunt.registerTask( "jsdom", function() { + var current, + pkg = grunt.config( "pkg" ), + version = pkg.jsdomVersions[ + + // Unfortunately, this is currently the only + // way to tell the difference between Node and iojs + /^v0/.test( process.version ) ? "node" : "iojs" + ]; + + try { + current = require( "jsdom/package.json" ).version; + if ( current === version ) { + return; + } + } catch ( e ) {} + + // Use npm on the command-line + // There is no local npm + grunt.util.spawn( { + cmd: "npm", + args: [ "install", "jsdom@" + version ], + opts: { stdio: "inherit" } + }, this.async() ); + }); +}; diff --git a/build/tasks/node_smoke_tests.js b/build/tasks/node_smoke_tests.js index 2a741c57a..077745b83 100644 --- a/build/tasks/node_smoke_tests.js +++ b/build/tasks/node_smoke_tests.js @@ -5,7 +5,7 @@ module.exports = function( grunt ) { var fs = require( "fs" ), spawnTest = require( "./lib/spawn_test.js" ), testsDir = "./test/node_smoke_tests/", - nodeSmokeTests = []; + nodeSmokeTests = [ "jsdom" ]; // Fire up all tests defined in test/node_smoke_tests/*.js in spawned sub-processes. // All the files under test/node_smoke_tests/*.js are supposed to exit with 0 code diff --git a/package.json b/package.json index 23017d978..50eab7afd 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,6 @@ "grunt-jsonlint": "1.0.4", "grunt-npmcopy": "0.1.0", "gzip-js": "0.3.2", - "jsdom": "3.1.2", "load-grunt-tasks": "1.0.0", "native-promise-only": "0.7.8-a", "promises-aplus-tests": "2.1.0", @@ -54,6 +53,10 @@ "testswarm": "1.1.0", "win-spawn": "2.0.0" }, + "jsdomVersions": { + "node": "3.1.2", + "iojs": "5.3.0" + }, "scripts": { "build": "npm install && grunt", "start": "grunt watch", -- 2.39.5