build: Add assert-mw-env task when running grunt-qunit
authorTimo Tijhof <krinklemail@gmail.com>
Fri, 20 Mar 2015 02:09:17 +0000 (02:09 +0000)
committerTimo Tijhof <krinklemail@gmail.com>
Fri, 20 Mar 2015 02:09:17 +0000 (02:09 +0000)
Previously it gave cryptic error messages like:

> Running "karma" task
> > Warning: Parameter 'url' must be a string, not number

Change-Id: I0adb0f2f501dd5db2d6738a40efbce349f0175d2

Gruntfile.js

index a292d0b..5d6dc17 100644 (file)
@@ -97,8 +97,21 @@ module.exports = function ( grunt ) {
                }
        } );
 
+       grunt.registerTask( 'assert-mw-env', function () {
+               if ( !process.env.MW_SERVER ) {
+                       grunt.log.error( 'Environment variable MW_SERVER must be set.\n' +
+                               'Set this like $wgServer, e.g. "http://localhost"'
+                       );
+               }
+               if ( !process.env.MW_SCRIPT_PATH ) {
+                       grunt.log.error( 'Environment variable MW_SCRIPT_PATH must be set.\n' +
+                               'Set this like $wgScriptPath, e.g. "/w"');
+               }
+               return !!( process.env.MW_SERVER && process.env.MW_SCRIPT_PATH );
+       } );
+
        grunt.registerTask( 'lint', ['jshint', 'jscs', 'jsonlint', 'banana'] );
-       grunt.registerTask( 'qunit', 'karma:main' );
+       grunt.registerTask( 'qunit', [ 'assert-mw-env', 'karma:main' ] );
 
        grunt.registerTask( 'test', ['lint'] );
        grunt.registerTask( 'default', 'test' );