@northbrook/mocha
Version:
Mocha Configuration for Northbrook
47 lines • 1.75 kB
JavaScript
;
var os_1 = require("os");
var northbrook_1 = require("northbrook");
var runTests_1 = require("./runTests");
var defaultPatterns = [
/.*\.(spec|test)\.(js|ts)$/,
/-(spec|test)\.(js|ts)$/,
/(Spec|Test)\.(js|ts)$/,
'test/**/*.js',
'test/**/*.ts',
'tests/**/*.js',
'tests/**/*.ts',
'!lib/**/*.*',
'!lib.es2015/**/*.*',
'!node_modules/**/*.*',
];
function addHandler(plugin) {
northbrook_1.each(plugin, function (input, io) {
var options = input.options, config = input.config, pkg = input.pkg;
var _a = config.mocha, mocha = _a === void 0 ? {} : _a;
if (mocha.exclude && mocha.exclude.indexOf(pkg.name) > -1)
return Promise.resolve();
require('buba/register');
requireHooks(options, config);
io.stdout.write(os_1.EOL + ("Running mocha tests in " + pkg.name + "...") + os_1.EOL);
return runTests_1.runTests(pkg, mocha.patterns || defaultPatterns)
.then(function () {
io.stdout.write(os_1.EOL + ("Completed mocha tests in " + pkg.name) + os_1.EOL);
})
.catch(function (e) {
io.stderr.write(os_1.EOL + e.message + os_1.EOL);
e.diagnostics.forEach(function (diagnostic) {
io.stderr.write(os_1.EOL + diagnostic.message + os_1.EOL);
});
process.exit(1);
});
});
}
exports.addHandler = addHandler;
function requireHooks(options, config) {
if (options.require)
options.require.split(',').map(function (str) { return str.trim(); }).forEach(require);
var mocha = config.mocha || {};
if (Array.isArray(mocha.require))
mocha.require.forEach(require);
}
//# sourceMappingURL=handler.js.map