From 9c8a3ecdc46156afd8f93aa44b6e6aea7c52c049 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Go=C5=82=C4=99biowski?= Date: Mon, 1 Jun 2015 23:25:38 +0200 Subject: [PATCH] Build: Refactor Node smoke tests Utilize the assert module, avoid inline JSHint comments. --- build/tasks/node_smoke_tests.js | 3 ++- test/node_smoke_tests/.jshintrc | 14 +++++++++++++ test/node_smoke_tests/document_missing.js | 20 ++++++------------- test/node_smoke_tests/document_passed.js | 9 +++------ .../document_present_originally.js | 9 +++------ .../lib/ensure_global_not_created.js | 10 ++++------ test/node_smoke_tests/lib/ensure_jquery.js | 10 ++++------ 7 files changed, 36 insertions(+), 39 deletions(-) create mode 100644 test/node_smoke_tests/.jshintrc diff --git a/build/tasks/node_smoke_tests.js b/build/tasks/node_smoke_tests.js index 077745b83..5c23dae2b 100644 --- a/build/tasks/node_smoke_tests.js +++ b/build/tasks/node_smoke_tests.js @@ -15,7 +15,8 @@ module.exports = function( grunt ) { fs.readdirSync( testsDir ) .filter( function( testFilePath ) { - return fs.statSync( testsDir + testFilePath ).isFile(); + return fs.statSync( testsDir + testFilePath ).isFile() && + /\.js$/.test( testFilePath ); } ) .forEach( function( testFilePath ) { var taskName = "node_" + testFilePath.replace( /\.js$/, "" ); diff --git a/test/node_smoke_tests/.jshintrc b/test/node_smoke_tests/.jshintrc new file mode 100644 index 000000000..1445c7b18 --- /dev/null +++ b/test/node_smoke_tests/.jshintrc @@ -0,0 +1,14 @@ +{ + "boss": true, + "curly": true, + "eqeqeq": true, + "eqnull": true, + "expr": true, + "immed": true, + "noarg": true, + "quotmark": "double", + "undef": true, + "unused": true, + + "node": true +} diff --git a/test/node_smoke_tests/document_missing.js b/test/node_smoke_tests/document_missing.js index 0a0bda350..4a0ad2e2b 100644 --- a/test/node_smoke_tests/document_missing.js +++ b/test/node_smoke_tests/document_missing.js @@ -1,19 +1,11 @@ -/* jshint node: true */ - "use strict"; -var ensureGlobalNotCreated = require( "./lib/ensure_global_not_created" ), +var assert = require( "assert" ), + ensureGlobalNotCreated = require( "./lib/ensure_global_not_created" ), jQueryFactory = require( "../../dist/jquery.js" ); -try { +assert.throws( function () { jQueryFactory( {} ); - console.error( "The jQuery factory should reject window without a document" ); - process.exit( 1 ); -} catch ( e ) { - if ( e.message === "jQuery requires a window with a document" ) { - ensureGlobalNotCreated( module.exports ); - process.exit( 0 ); - } - console.error( "An unexpected error thrown; message: ", e.message ); - process.exit( 1 ); -} +}, /jQuery requires a window with a document/ ); + +ensureGlobalNotCreated( module.exports ); diff --git a/test/node_smoke_tests/document_passed.js b/test/node_smoke_tests/document_passed.js index 5bbddb718..5999cc744 100644 --- a/test/node_smoke_tests/document_passed.js +++ b/test/node_smoke_tests/document_passed.js @@ -1,12 +1,9 @@ -/* jshint node: true */ - "use strict"; +var assert = require( "assert" ); + require( "jsdom" ).env( "", function( errors, window ) { - if ( errors ) { - console.error( errors ); - process.exit( 1 ); - } + assert.ifError( errors ); var ensureJQuery = require( "./lib/ensure_jquery" ), ensureGlobalNotCreated = require( "./lib/ensure_global_not_created" ), diff --git a/test/node_smoke_tests/document_present_originally.js b/test/node_smoke_tests/document_present_originally.js index 76fa88e86..f75148708 100644 --- a/test/node_smoke_tests/document_present_originally.js +++ b/test/node_smoke_tests/document_present_originally.js @@ -1,12 +1,9 @@ -/* jshint node: true */ - "use strict"; +var assert = require( "assert" ); + require( "jsdom" ).env( "", function( errors, window ) { - if ( errors ) { - console.error( errors ); - process.exit( 1 ); - } + assert.ifError( errors ); // Pretend the window is a global. global.window = window; diff --git a/test/node_smoke_tests/lib/ensure_global_not_created.js b/test/node_smoke_tests/lib/ensure_global_not_created.js index e2ce98309..7cc83b541 100644 --- a/test/node_smoke_tests/lib/ensure_global_not_created.js +++ b/test/node_smoke_tests/lib/ensure_global_not_created.js @@ -1,7 +1,7 @@ -/* jshint node: true */ - "use strict"; +var assert = require( "assert" ); + // Ensure the jQuery property on global/window/module.exports/etc. was not // created in a CommonJS environment. // `global` is always checked in addition to passed parameters. @@ -9,9 +9,7 @@ module.exports = function ensureGlobalNotCreated() { var args = [].slice.call( arguments ).concat( global ); args.forEach( function( object ) { - if ( object.jQuery ) { - console.error( "A jQuery global was created in a CommonJS environment." ); - process.exit( 1 ); - } + assert.strictEqual( object.jQuery, undefined, + "A jQuery global was created in a CommonJS environment." ); } ); }; diff --git a/test/node_smoke_tests/lib/ensure_jquery.js b/test/node_smoke_tests/lib/ensure_jquery.js index f121f6652..0933a1d33 100644 --- a/test/node_smoke_tests/lib/ensure_jquery.js +++ b/test/node_smoke_tests/lib/ensure_jquery.js @@ -1,11 +1,9 @@ -/* jshint node: true */ - "use strict"; +var assert = require( "assert" ); + // Check if the object we got is the jQuery object by invoking a basic API. module.exports = function ensureJQuery( jQuery ) { - if ( !/^jQuery/.test( jQuery.expando ) ) { - console.error( "jQuery.expando was not detected, the jQuery bootstrap process has failed" ); - process.exit( 1 ); - } + assert( /^jQuery/.test( jQuery.expando ), + "jQuery.expando was not detected, the jQuery bootstrap process has failed" ); };