@testim/testim-cli
Version:
Command line interface for running Testing on you CI
67 lines (50 loc) • 4.66 kB
JavaScript
/**
*
* Uploads a file to the selenium server.
*
* @param {String} localPath local path to file
*
* @type utility
*
*/
;
var _Promise = require('babel-runtime/core-js/promise')['default'];
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _archiver = require('archiver');
var _archiver2 = _interopRequireDefault(_archiver);
var _utilsErrorHandler = require('../utils/ErrorHandler');
var uploadFile = function uploadFile(localPath) {
var _this = this;
/*!
* parameter check
*/
if (typeof localPath !== 'string') {
throw new _utilsErrorHandler.CommandError('number or type of arguments don\'t agree with uploadFile command');
}
var zipData = [];
var source = _fs2['default'].createReadStream(localPath);
return new _Promise(function (resolve, reject) {
(0, _archiver2['default'])('zip').on('error', function (e) {
throw new Error(e);
}).on('data', function (data) {
return zipData.push(data);
}).on('end', function () {
return _this.file(Buffer.concat(zipData).toString('base64')).then(resolve, reject);
}).append(source, { name: _path2['default'].basename(localPath) }).finalize(function (err) {
/* istanbul ignore next */
if (err) {
reject(err);
}
});
});
};
exports['default'] = uploadFile;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy91cGxvYWRGaWxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQVVlLElBQUk7Ozs7b0JBQ0YsTUFBTTs7Ozt3QkFDRixVQUFVOzs7O2lDQUVGLHVCQUF1Qjs7QUFFcEQsSUFBSSxVQUFVLEdBQUcsU0FBYixVQUFVLENBQWEsU0FBUyxFQUFFOzs7Ozs7QUFJbEMsUUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUU7QUFDL0IsY0FBTSxvQ0FBaUIsa0VBQWtFLENBQUMsQ0FBQTtLQUM3Rjs7QUFFRCxRQUFJLE9BQU8sR0FBRyxFQUFFLENBQUE7QUFDaEIsUUFBSSxNQUFNLEdBQUcsZ0JBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUE7O0FBRTNDLFdBQU8sYUFBWSxVQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUs7QUFDcEMsbUNBQVMsS0FBSyxDQUFDLENBQ1YsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFDLENBQUMsRUFBSztBQUFFLGtCQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQUUsQ0FBQyxDQUMxQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQUMsSUFBSTttQkFBSyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUFBLENBQUMsQ0FDeEMsRUFBRSxDQUFDLEtBQUssRUFBRTttQkFBTSxNQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1NBQUEsQ0FBQyxDQUMzRixNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGtCQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQ2xELFFBQVEsQ0FBQyxVQUFDLEdBQUcsRUFBSzs7QUFFZixnQkFBSSxHQUFHLEVBQUU7QUFDTCxzQkFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2Q7U0FDSixDQUFDLENBQUE7S0FDVCxDQUFDLENBQUE7Q0FDTCxDQUFBOztxQkFFYyxVQUFVIiwiZmlsZSI6InVwbG9hZEZpbGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBVcGxvYWRzIGEgZmlsZSB0byB0aGUgc2VsZW5pdW0gc2VydmVyLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBsb2NhbFBhdGggbG9jYWwgcGF0aCB0byBmaWxlXG4gKlxuICogQHR5cGUgdXRpbGl0eVxuICpcbiAqL1xuXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IGFyY2hpdmVyIGZyb20gJ2FyY2hpdmVyJ1xuXG5pbXBvcnQgeyBDb21tYW5kRXJyb3IgfSBmcm9tICcuLi91dGlscy9FcnJvckhhbmRsZXInXG5cbmxldCB1cGxvYWRGaWxlID0gZnVuY3Rpb24gKGxvY2FsUGF0aCkge1xuICAgIC8qIVxuICAgICAqIHBhcmFtZXRlciBjaGVja1xuICAgICAqL1xuICAgIGlmICh0eXBlb2YgbG9jYWxQYXRoICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBuZXcgQ29tbWFuZEVycm9yKCdudW1iZXIgb3IgdHlwZSBvZiBhcmd1bWVudHMgZG9uXFwndCBhZ3JlZSB3aXRoIHVwbG9hZEZpbGUgY29tbWFuZCcpXG4gICAgfVxuXG4gICAgbGV0IHppcERhdGEgPSBbXVxuICAgIGxldCBzb3VyY2UgPSBmcy5jcmVhdGVSZWFkU3RyZWFtKGxvY2FsUGF0aClcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGFyY2hpdmVyKCd6aXAnKVxuICAgICAgICAgICAgLm9uKCdlcnJvcicsIChlKSA9PiB7IHRocm93IG5ldyBFcnJvcihlKSB9KVxuICAgICAgICAgICAgLm9uKCdkYXRhJywgKGRhdGEpID0+IHppcERhdGEucHVzaChkYXRhKSlcbiAgICAgICAgICAgIC5vbignZW5kJywgKCkgPT4gdGhpcy5maWxlKEJ1ZmZlci5jb25jYXQoemlwRGF0YSkudG9TdHJpbmcoJ2Jhc2U2NCcpKS50aGVuKHJlc29sdmUsIHJlamVjdCkpXG4gICAgICAgICAgICAuYXBwZW5kKHNvdXJjZSwgeyBuYW1lOiBwYXRoLmJhc2VuYW1lKGxvY2FsUGF0aCkgfSlcbiAgICAgICAgICAgIC5maW5hbGl6ZSgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCB1cGxvYWRGaWxlXG4iXX0=