]> source.dussan.org Git - jquery.git/commitdiff
Build: use different versions of jsdom for Node and iojs testing 2272/head
authorTimmy Willison <timmywillisn@gmail.com>
Wed, 6 May 2015 23:23:00 +0000 (16:23 -0700)
committerTimmy Willison <timmywillisn@gmail.com>
Thu, 7 May 2015 16:57:59 +0000 (09:57 -0700)
Fixes gh-2266

build/tasks/install_jsdom.js [new file with mode: 0644]
build/tasks/node_smoke_tests.js
package.json

diff --git a/build/tasks/install_jsdom.js b/build/tasks/install_jsdom.js
new file mode 100644 (file)
index 0000000..21d67eb
--- /dev/null
@@ -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() );
+       });
+};
index 2a741c57af14d9e908490e4f5f50790e49073d35..077745b83f61d217508ffdcc7b348d17304cf7fd 100644 (file)
@@ -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
index 23017d9783b9079e0b11b6baed247a70e0a9e70f..50eab7afdc9cf3a8b6a970a20851a7f3f274e1ba 100644 (file)
@@ -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",
     "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",