UNPKG

morpha

Version:

A Web-IDE or Desktop-IDE creator.

90 lines (72 loc) 2.82 kB
'use strict'; 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); } } } }; } };