Build: use different versions of jsdom for Node and iojs testing

Fixes gh-2266
This commit is contained in:
Timmy Willison 2015-05-06 16:23:00 -07:00
parent 62d5579578
commit 5c3101fee6
3 changed files with 32 additions and 2 deletions

View File

@ -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() );
});
};

View File

@ -5,7 +5,7 @@ module.exports = function( grunt ) {
var fs = require( "fs" ), var fs = require( "fs" ),
spawnTest = require( "./lib/spawn_test.js" ), spawnTest = require( "./lib/spawn_test.js" ),
testsDir = "./test/node_smoke_tests/", testsDir = "./test/node_smoke_tests/",
nodeSmokeTests = []; nodeSmokeTests = [ "jsdom" ];
// Fire up all tests defined in test/node_smoke_tests/*.js in spawned sub-processes. // 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 // All the files under test/node_smoke_tests/*.js are supposed to exit with 0 code

View File

@ -42,7 +42,6 @@
"grunt-jsonlint": "1.0.4", "grunt-jsonlint": "1.0.4",
"grunt-npmcopy": "0.1.0", "grunt-npmcopy": "0.1.0",
"gzip-js": "0.3.2", "gzip-js": "0.3.2",
"jsdom": "3.1.2",
"load-grunt-tasks": "1.0.0", "load-grunt-tasks": "1.0.0",
"native-promise-only": "0.7.8-a", "native-promise-only": "0.7.8-a",
"promises-aplus-tests": "2.1.0", "promises-aplus-tests": "2.1.0",
@ -54,6 +53,10 @@
"testswarm": "1.1.0", "testswarm": "1.1.0",
"win-spawn": "2.0.0" "win-spawn": "2.0.0"
}, },
"jsdomVersions": {
"node": "3.1.2",
"iojs": "5.3.0"
},
"scripts": { "scripts": {
"build": "npm install && grunt", "build": "npm install && grunt",
"start": "grunt watch", "start": "grunt watch",