51 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
#!/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.');
 | 
						|
}
 |