morpha
Version:
A Web-IDE or Desktop-IDE creator.
90 lines (72 loc) • 2.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
var _mochaLoad = require('./mochaLoad');
var _mochaLoad2 = _interopRequireDefault(_mochaLoad);
var _processReporter = require('./processReporter');
var _processReporter2 = _interopRequireDefault(_processReporter);
var _events = require('events');
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _util = require('util');
var _util2 = _interopRequireDefault(_util);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = {
name: 'mocha',
dependencies: ['electron'],
fn: function fn(_ref) {
var electron = _ref.electron,
globalConfig = _ref.globalConfig;
return {
services: {},
bootstrap: function bootstrap() {
var ipcMain = electron.ipcMain;
var processConfig = globalConfig.process || {};
var clientLoaded = false;
var processLoaded = false;
var isFail = false;
var mocha = (0, _mochaLoad2.default)({
testPaths: [process.cwd()],
reporter: 'spec',
pathExp: processConfig.pathExp || /\.process\.spec\.js$|\.spec\.js$/,
pathIgnoreExp: processConfig.pathIgnoreExp || /\.client\.spec\.js$/
});
ipcMain.on('mocha-done', function (event, failures) {
clientLoaded = true;
end(failures);
});
ipcMain.on('mocha-error', function (event, data) {
process.stderr.write(_util2.default.format('\nError encountered in %s: %s\n%s', _path2.default.relative(process.cwd(), data.filename), data.message, data.stack));
});
var emitter = new _events.EventEmitter();
(0, _processReporter2.default)(emitter);
ipcMain.on('mocha-reporter', function (event, key) {
for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
args[_key - 2] = arguments[_key];
}
emitter.emit.apply(emitter, [key].concat(args));
});
ipcMain.on('mocha-log', function (event, args) {
var _console;
(_console = console).log.apply(_console, ['[client]'].concat((0, _toConsumableArray3.default)(args)));
});
mocha.run(function (failures) {
processLoaded = true;
end(failures);
});
function end(failures) {
if (failures !== 0) isFail = true;
if (!clientLoaded || !processLoaded) return;
if (isFail) {
process.exit(1);
} else {
process.exit(0);
}
}
}
};
}
};