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

100% Statements 20/20
80% Branches 8/10
20% Functions 1/5
100% Lines 2/2
11 statements, 5 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                                                                                                                               
/**
 *
 * Given a selector corresponding to an `<input type=file>`, will upload the local
 * file to the browser machine and fill the form accordingly. It does not submit
 * the form for you.
 *
 * @param {String} selector   input element
 * @param {String} localPath  local path to file to be uploaded
 *
 * @uses utility/uploadFile, action/addValue
 * @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 _utilsErrorHandler = require('../utils/ErrorHandler');
 
var chooseFile = function chooseFile(selector, localPath) {
    // istanbul ignore next
 
    var _this = this;

    /*!
     * parameter check
     */
    if (typeof localPath !== 'string') {
        return new _utilsErrorHandler.CommandError('number or type of arguments don\'t agree with chooseFile command');
    }
 
    /*!
     * mobile check
     */
    if (this.isMobile) {
        return new _utilsErrorHandler.CommandError('chooseFile command is not supported on mobile platforms');
    }
 
    return new Promise(function (resolve, reject) {
        _fs2['default'].exists(localPath, function (exists) {
            /* istanbul ignore next */
            if (!exists) {
                return reject(new _utilsErrorHandler.CommandError('File to upload does not exists on your system'));
            }
 
            _this.uploadFile(localPath).then(function (res) {
                return this.addValue(selector, res.value);
            }).then(resolve, reject);
        });
    });
};
 
exports['default'] = chooseFile;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvY2hvb3NlRmlsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFjZSxJQUFJOzs7O2lDQUNVLHVCQUF1Qjs7QUFFcEQsSUFBSSxVQUFVLEdBQUcsU0FBYixVQUFVLENBQWEsUUFBUSxFQUFFLFNBQVMsRUFBRTs7Ozs7Ozs7QUFJNUMsUUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUU7QUFDL0IsZUFBTyxvQ0FBaUIsa0VBQWtFLENBQUMsQ0FBQTtLQUM5Rjs7Ozs7QUFLRCxRQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7QUFDZixlQUFPLG9DQUFpQix5REFBeUQsQ0FBQyxDQUFBO0tBQ3JGOztBQUVELFdBQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFLO0FBQ3BDLHdCQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsVUFBQyxNQUFNLEVBQUs7O0FBRTdCLGdCQUFJLENBQUMsTUFBTSxFQUFFO0FBQ1QsdUJBQU8sTUFBTSxDQUFDLG9DQUFpQiwrQ0FBK0MsQ0FBQyxDQUFDLENBQUE7YUFDbkY7O0FBRUQsa0JBQUssVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRTtBQUMzQyx1QkFBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7YUFDNUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUE7U0FDM0IsQ0FBQyxDQUFBO0tBQ0wsQ0FBQyxDQUFBO0NBQ0wsQ0FBQTs7cUJBRWMsVUFBVSIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL2NvbW1hbmRzL2Nob29zZUZpbGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBHaXZlbiBhIHNlbGVjdG9yIGNvcnJlc3BvbmRpbmcgdG8gYW4gYDxpbnB1dCB0eXBlPWZpbGU+YCwgd2lsbCB1cGxvYWQgdGhlIGxvY2FsXG4gKiBmaWxlIHRvIHRoZSBicm93c2VyIG1hY2hpbmUgYW5kIGZpbGwgdGhlIGZvcm0gYWNjb3JkaW5nbHkuIEl0IGRvZXMgbm90IHN1Ym1pdFxuICogdGhlIGZvcm0gZm9yIHlvdS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VsZWN0b3IgICBpbnB1dCBlbGVtZW50XG4gKiBAcGFyYW0ge1N0cmluZ30gbG9jYWxQYXRoICBsb2NhbCBwYXRoIHRvIGZpbGUgdG8gYmUgdXBsb2FkZWRcbiAqXG4gKiBAdXNlcyB1dGlsaXR5L3VwbG9hZEZpbGUsIGFjdGlvbi9hZGRWYWx1ZVxuICogQHR5cGUgdXRpbGl0eVxuICpcbiAqL1xuXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgeyBDb21tYW5kRXJyb3IgfSBmcm9tICcuLi91dGlscy9FcnJvckhhbmRsZXInXG5cbmxldCBjaG9vc2VGaWxlID0gZnVuY3Rpb24gKHNlbGVjdG9yLCBsb2NhbFBhdGgpIHtcbiAgICAvKiFcbiAgICAgKiBwYXJhbWV0ZXIgY2hlY2tcbiAgICAgKi9cbiAgICBpZiAodHlwZW9mIGxvY2FsUGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21tYW5kRXJyb3IoJ251bWJlciBvciB0eXBlIG9mIGFyZ3VtZW50cyBkb25cXCd0IGFncmVlIHdpdGggY2hvb3NlRmlsZSBjb21tYW5kJylcbiAgICB9XG5cbiAgICAvKiFcbiAgICAgKiBtb2JpbGUgY2hlY2tcbiAgICAgKi9cbiAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgICByZXR1cm4gbmV3IENvbW1hbmRFcnJvcignY2hvb3NlRmlsZSBjb21tYW5kIGlzIG5vdCBzdXBwb3J0ZWQgb24gbW9iaWxlIHBsYXRmb3JtcycpXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgZnMuZXhpc3RzKGxvY2FsUGF0aCwgKGV4aXN0cykgPT4ge1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGlmICghZXhpc3RzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgQ29tbWFuZEVycm9yKCdGaWxlIHRvIHVwbG9hZCBkb2VzIG5vdCBleGlzdHMgb24geW91ciBzeXN0ZW0nKSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlKGxvY2FsUGF0aCkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkVmFsdWUoc2VsZWN0b3IsIHJlcy52YWx1ZSlcbiAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KVxuICAgICAgICB9KVxuICAgIH0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNob29zZUZpbGVcbiJdfQ==