#!/usr/bin/env node | |
require('../global'); | |
var path = require('path'); | |
var failed = false; | |
// | |
// Lint | |
// | |
JSHINT_BIN = './node_modules/jshint/bin/jshint'; | |
cd(__dirname + '/..'); | |
if (!test('-f', JSHINT_BIN)) { | |
echo('JSHint not found. Run `npm install` in the root dir first.'); | |
exit(1); | |
} | |
if (exec(JSHINT_BIN + ' *.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.'); | |
} |