56 lines
1.4 KiB
JavaScript
Executable File
56 lines
1.4 KiB
JavaScript
Executable File
#!/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.');
|
|
}
|