/**
*
* Uploads a file to the selenium server.
*
* @param {String} localPath local path to file
*
* @type utility
*
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
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) {
// istanbul ignore next
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvdXBsb2FkRmlsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQVVlLElBQUk7Ozs7b0JBQ0YsTUFBTTs7Ozt3QkFDRixVQUFVOzs7O2lDQUVGLHVCQUF1Qjs7QUFFcEQsSUFBSSxVQUFVLEdBQUcsU0FBYixVQUFVLENBQWEsU0FBUyxFQUFFOzs7Ozs7OztBQUlsQyxRQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsRUFBRTtBQUMvQixjQUFNLG9DQUFpQixrRUFBa0UsQ0FBQyxDQUFBO0tBQzdGOztBQUVELFFBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQTtBQUNoQixRQUFJLE1BQU0sR0FBRyxnQkFBRyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQTs7QUFFM0MsV0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUs7QUFDcEMsbUNBQVMsS0FBSyxDQUFDLENBQ1YsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFDLENBQUMsRUFBSztBQUFFLGtCQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1NBQUUsQ0FBQyxDQUMxQyxFQUFFLENBQUMsTUFBTSxFQUFFLFVBQUMsSUFBSTttQkFBSyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUFBLENBQUMsQ0FDeEMsRUFBRSxDQUFDLEtBQUssRUFBRTttQkFBTSxNQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1NBQUEsQ0FBQyxDQUMzRixNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGtCQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQ2xELFFBQVEsQ0FBQyxVQUFDLEdBQUcsRUFBSzs7QUFFZixnQkFBSSxHQUFHLEVBQUU7QUFDTCxzQkFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2Q7U0FDSixDQUFDLENBQUE7S0FDVCxDQUFDLENBQUE7Q0FDTCxDQUFBOztxQkFFYyxVQUFVIiwiZmlsZSI6Ii9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvdXBsb2FkRmlsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqIFVwbG9hZHMgYSBmaWxlIHRvIHRoZSBzZWxlbml1bSBzZXJ2ZXIuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsUGF0aCBsb2NhbCBwYXRoIHRvIGZpbGVcbiAqXG4gKiBAdHlwZSB1dGlsaXR5XG4gKlxuICovXG5cbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgYXJjaGl2ZXIgZnJvbSAnYXJjaGl2ZXInXG5cbmltcG9ydCB7IENvbW1hbmRFcnJvciB9IGZyb20gJy4uL3V0aWxzL0Vycm9ySGFuZGxlcidcblxubGV0IHVwbG9hZEZpbGUgPSBmdW5jdGlvbiAobG9jYWxQYXRoKSB7XG4gICAgLyohXG4gICAgICogcGFyYW1ldGVyIGNoZWNrXG4gICAgICovXG4gICAgaWYgKHR5cGVvZiBsb2NhbFBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBDb21tYW5kRXJyb3IoJ251bWJlciBvciB0eXBlIG9mIGFyZ3VtZW50cyBkb25cXCd0IGFncmVlIHdpdGggdXBsb2FkRmlsZSBjb21tYW5kJylcbiAgICB9XG5cbiAgICBsZXQgemlwRGF0YSA9IFtdXG4gICAgbGV0IHNvdXJjZSA9IGZzLmNyZWF0ZVJlYWRTdHJlYW0obG9jYWxQYXRoKVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgYXJjaGl2ZXIoJ3ppcCcpXG4gICAgICAgICAgICAub24oJ2Vycm9yJywgKGUpID0+IHsgdGhyb3cgbmV3IEVycm9yKGUpIH0pXG4gICAgICAgICAgICAub24oJ2RhdGEnLCAoZGF0YSkgPT4gemlwRGF0YS5wdXNoKGRhdGEpKVxuICAgICAgICAgICAgLm9uKCdlbmQnLCAoKSA9PiB0aGlzLmZpbGUoQnVmZmVyLmNvbmNhdCh6aXBEYXRhKS50b1N0cmluZygnYmFzZTY0JykpLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KSlcbiAgICAgICAgICAgIC5hcHBlbmQoc291cmNlLCB7IG5hbWU6IHBhdGguYmFzZW5hbWUobG9jYWxQYXRoKSB9KVxuICAgICAgICAgICAgLmZpbmFsaXplKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgIH0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IHVwbG9hZEZpbGVcbiJdfQ== |