all files / DEV/lib/commands/ uploadFile.js

100% Statements 25/25
75% Branches 6/8
14.29% Functions 1/7
100% Lines 3/3
12 statements, 3 branches Ignored     
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67                                                                                                                                 
/**
 *
 * 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==