#!/usr/bin/env node require('../global'); var failed = false; // // Lint // JSHINT_BIN = './node_modules/jshint/bin/hint'; cd(__dirname + '/..'); if (!test('-f', JSHINT_BIN)) { echo('Installing JSHint locally'); exec('npm install jshint', {silent:true}); } if (!test('-f', JSHINT_BIN)) { failed = true; echo('*** FAILED TO INSTALL JSHINT!'); echo(); } else { if (exec(JSHINT_BIN + ' --config jshint.json *.js test/*.js').code !== 0) { failed = true; echo('*** JSHINT FAILED! (return code != 0)'); echo(); } else { echo('All JSHint tests passed'); echo(); } } // // Unit tests // cd(__dirname + '/../test'); ls('*.js').forEach(function(file) { echo('Running test:', file); if (exec('node '+file).code !== 123) { // 123 avoids false positives (e.g. premature exit) failed = true; echo('*** TEST FAILED! (missing exit code "123")'); echo(); } }); if (failed) { echo(); echo('*******************************************************'); echo('WARNING: Some tests did not pass!'); echo('*******************************************************'); exit(1); } else { echo(); echo('All tests passed.'); }