var fs = require( "fs" ),
stripJSONComments = require( "strip-json-comments" ),
gzip = require( "gzip-js" ),
- srcHintOptions = readOptionalJSON( "src/.jshintrc" );
+ srcHintOptions = readOptionalJSON( "src/.jshintrc" ),
+ newNode = !/^v0/.test( process.version ),
+
+ // Allow to skip jsdom-related tests in Node.js < 1.0.0
+ runJsdomTests = newNode || ( function() {
+ try {
+ require( "jsdom" );
+ return true;
+ } catch ( e ) {
+ return false;
+ }
+ } )();
// The concatenated file won't pass onevar
// But our modules can
grunt.registerTask( "lint", [ "jsonlint", "jshint", "jscs" ] );
- grunt.registerTask( "test_fast", [ "node_smoke_tests" ] );
+ // Don't run Node-related tests in Node.js < 1.0.0 as they require an old
+ // jsdom version that needs compiling, making it harder for people to compile
+ // jQuery on Windows. (see gh-2519)
+ grunt.registerTask( "test_fast", runJsdomTests ? [ "node_smoke_tests" ] : [] );
- grunt.registerTask( "test", [ "test_fast", "promises_aplus_tests" ] );
+ grunt.registerTask( "test", [ "test_fast" ].concat(
+ runJsdomTests ? [ "promises_aplus_tests" ] : []
+ ) );
// Short list as a high frequency watch task
grunt.registerTask( "dev", [ "build:*:*", "lint", "uglify", "remove_map_comment", "dist:*" ] );
+++ /dev/null
-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() );
- } );
-};
--- /dev/null
+module.exports = function( grunt ) {
+
+ "use strict";
+
+ // Run this task to run jsdom-related tests on Node.js < 1.0.0.
+ grunt.registerTask( "old_jsdom", function() {
+ if ( !/^v0/.test( process.version ) ) {
+ console.warn( "The old_jsdom task doesn\'t need to be run in io.js or new Node.js" );
+ return;
+ }
+
+ // Use npm on the command-line
+ // There is no local npm
+ grunt.util.spawn( {
+ cmd: "npm",
+ args: [ "install", "jsdom@3" ],
+ opts: { stdio: "inherit" }
+ }, this.async() );
+ } );
+};
var fs = require( "fs" ),
spawnTest = require( "./lib/spawn_test.js" ),
testsDir = "./test/node_smoke_tests/",
- nodeSmokeTests = [ "jsdom", "babel:nodeSmokeTests" ];
+ nodeSmokeTests = [ "babel:nodeSmokeTests" ];
// 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
"grunt-jsonlint": "1.0.4",
"grunt-npmcopy": "0.1.0",
"gzip-js": "0.3.2",
+ "jsdom": "5.6.1",
"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",