UNPKG

reactors-cli

Version:
272 lines (216 loc) 8.56 kB
'use strict'; var _colors = require('colors'); var _colors2 = _interopRequireDefault(_colors); var _path2 = require('path'); var _path3 = _interopRequireDefault(_path2); var _should = require('should'); var _should2 = _interopRequireDefault(_should); require('babel-polyfill'); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _ws = require('ws'); var _exec = require('../util/exec'); var _exec2 = _interopRequireDefault(_exec); var _write = require('../util/write'); var _write2 = _interopRequireDefault(_write); var _read = require('../util/read'); var _read2 = _interopRequireDefault(_read); var _package = require('../../package.json'); var _config = require('../config'); var _config2 = _interopRequireDefault(_config); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /* global describe it after */ function cbToPromise(fn) { return new Promise(function (resolve, reject) { fn(function (error, result) { if (error) { return reject(error); } resolve(result); }); }); } function stat() { var _this = this; for (var _len = arguments.length, paths = Array(_len), _key = 0; _key < _len; _key++) { paths[_key] = arguments[_key]; } return new Promise(function () { var _ref = _asyncToGenerator(regeneratorRuntime.mark(function _callee(resolve, reject) { var _path; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; _path = _path3.default.join.apply(_path3.default, paths); _context.t0 = resolve; _context.next = 5; return cbToPromise(_fs2.default.stat.bind(null, _path)); case 5: _context.t1 = _context.sent; (0, _context.t0)(_context.t1); _context.next = 12; break; case 9: _context.prev = 9; _context.t2 = _context['catch'](0); reject(_context.t2); case 12: case 'end': return _context.stop(); } } }, _callee, _this, [[0, 9]]); })); return function (_x, _x2) { return _ref.apply(this, arguments); }; }()); } var APP = 'RunReactorsDesktop'; var CONTAINER = '/tmp'; var PATH = _path3.default.join(CONTAINER, APP); describe('Run desktop', function () { describe('Init new app', function () { it('should init app', _asyncToGenerator(regeneratorRuntime.mark(function _callee3() { var _this2 = this; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: this.timeout(1000 * 60 * 5); return _context3.abrupt('return', new Promise(function () { var _ref3 = _asyncToGenerator(regeneratorRuntime.mark(function _callee2(resolve, reject) { var binPath; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: _context2.prev = 0; binPath = _path3.default.resolve(__dirname, '../..', _package.bin.reactors); _context2.next = 4; return (0, _exec2.default)('node ' + binPath + ' init ' + APP, { cwd: CONTAINER }); case 4: resolve(); _context2.next = 10; break; case 7: _context2.prev = 7; _context2.t0 = _context2['catch'](0); reject(_context2.t0); case 10: case 'end': return _context2.stop(); } } }, _callee2, _this2, [[0, 7]]); })); return function (_x3, _x4) { return _ref3.apply(this, arguments); }; }())); case 2: case 'end': return _context3.stop(); } } }, _callee3, this); }))); }); describe('Run', function () { var connected = void 0; it('should put new index', _asyncToGenerator(regeneratorRuntime.mark(function _callee4() { return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.next = 2; return (0, _exec2.default)('ls app', { cwd: _path3.default.join(PATH) }); case 2: _context4.t0 = _write2.default; _context4.t1 = _path3.default.join(PATH, 'app/App.js'); _context4.next = 6; return (0, _read2.default)(_path3.default.resolve(__dirname, '../../templates/test/run-desktop-app.js')); case 6: _context4.t2 = _context4.sent; _context4.next = 9; return (0, _context4.t0)(_context4.t1, _context4.t2); case 9: case 'end': return _context4.stop(); } } }, _callee4, undefined); }))); it('should start a web socket server', function () { var wss = new _ws.Server({ port: 8008 }); wss.on('connection', function () { connected = true; }); }); it('should launch run command', _asyncToGenerator(regeneratorRuntime.mark(function _callee6() { var _this3 = this; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: this.timeout(1000 * 60 * 5); return _context6.abrupt('return', new Promise(function () { var _ref6 = _asyncToGenerator(regeneratorRuntime.mark(function _callee5(resolve, reject) { var binPath; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: try { binPath = _path3.default.resolve(__dirname, '../..', _package.bin.reactors); (0, _exec2.default)('node ' + binPath + ' run desktop', { cwd: PATH }); setTimeout(resolve, 10000); } catch (error) { reject(error); } case 1: case 'end': return _context5.stop(); } } }, _callee5, _this3); })); return function (_x5, _x6) { return _ref6.apply(this, arguments); }; }())); case 2: case 'end': return _context6.stop(); } } }, _callee6, this); }))); it('should have handshaked', function (done) { this.timeout(3500); setTimeout(function () { if (connected) { done(); } else { done(new Error('Not connected')); } }, 2500); }); }); after('remove project', _asyncToGenerator(regeneratorRuntime.mark(function _callee7() { return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: _context7.next = 2; return (0, _exec2.default)('rm -rf ' + PATH); case 2: case 'end': return _context7.stop(); } } }, _callee7, undefined); }))); });