#!/usr/bin/env node /* globals cd, echo, exec, exit, ls, pwd, test */ require('../global'); var common = require('../src/common'); var failed = false; // // Lint // var 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); } var jsfiles = common.expand([pwd() + '/*.js', pwd() + '/scripts/*.js', pwd() + '/src/*.js', pwd() + '/test/*.js' ]).join(' '); if (exec(JSON.stringify(process.execPath)+' '+pwd()+'/'+JSHINT_BIN+' '+jsfiles).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(JSON.stringify(process.execPath)+' '+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.'); }