@testim/testim-cli
Version:
Command line interface for running Testing on you CI
65 lines (51 loc) • 4.73 kB
JavaScript
/**
*
* 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
*
*/
;
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 _utilsErrorHandler = require('../utils/ErrorHandler');
var chooseFile = function chooseFile(selector, localPath) {
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9jaG9vc2VGaWxlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFjZSxJQUFJOzs7O2lDQUNVLHVCQUF1Qjs7QUFFcEQsSUFBSSxVQUFVLEdBQUcsU0FBYixVQUFVLENBQWEsUUFBUSxFQUFFLFNBQVMsRUFBRTs7Ozs7O0FBSTVDLFFBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFO0FBQy9CLGVBQU8sb0NBQWlCLGtFQUFrRSxDQUFDLENBQUE7S0FDOUY7Ozs7O0FBS0QsUUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO0FBQ2YsZUFBTyxvQ0FBaUIseURBQXlELENBQUMsQ0FBQTtLQUNyRjs7QUFFRCxXQUFPLGFBQVksVUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFLO0FBQ3BDLHdCQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsVUFBQyxNQUFNLEVBQUs7O0FBRTdCLGdCQUFJLENBQUMsTUFBTSxFQUFFO0FBQ1QsdUJBQU8sTUFBTSxDQUFDLG9DQUFpQiwrQ0FBK0MsQ0FBQyxDQUFDLENBQUE7YUFDbkY7O0FBRUQsa0JBQUssVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRTtBQUMzQyx1QkFBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7YUFDNUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUE7U0FDM0IsQ0FBQyxDQUFBO0tBQ0wsQ0FBQyxDQUFBO0NBQ0wsQ0FBQTs7cUJBRWMsVUFBVSIsImZpbGUiOiJjaG9vc2VGaWxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogR2l2ZW4gYSBzZWxlY3RvciBjb3JyZXNwb25kaW5nIHRvIGFuIGA8aW5wdXQgdHlwZT1maWxlPmAsIHdpbGwgdXBsb2FkIHRoZSBsb2NhbFxuICogZmlsZSB0byB0aGUgYnJvd3NlciBtYWNoaW5lIGFuZCBmaWxsIHRoZSBmb3JtIGFjY29yZGluZ2x5LiBJdCBkb2VzIG5vdCBzdWJtaXRcbiAqIHRoZSBmb3JtIGZvciB5b3UuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHNlbGVjdG9yICAgaW5wdXQgZWxlbWVudFxuICogQHBhcmFtIHtTdHJpbmd9IGxvY2FsUGF0aCAgbG9jYWwgcGF0aCB0byBmaWxlIHRvIGJlIHVwbG9hZGVkXG4gKlxuICogQHVzZXMgdXRpbGl0eS91cGxvYWRGaWxlLCBhY3Rpb24vYWRkVmFsdWVcbiAqIEB0eXBlIHV0aWxpdHlcbiAqXG4gKi9cblxuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHsgQ29tbWFuZEVycm9yIH0gZnJvbSAnLi4vdXRpbHMvRXJyb3JIYW5kbGVyJ1xuXG5sZXQgY2hvb3NlRmlsZSA9IGZ1bmN0aW9uIChzZWxlY3RvciwgbG9jYWxQYXRoKSB7XG4gICAgLyohXG4gICAgICogcGFyYW1ldGVyIGNoZWNrXG4gICAgICovXG4gICAgaWYgKHR5cGVvZiBsb2NhbFBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBuZXcgQ29tbWFuZEVycm9yKCdudW1iZXIgb3IgdHlwZSBvZiBhcmd1bWVudHMgZG9uXFwndCBhZ3JlZSB3aXRoIGNob29zZUZpbGUgY29tbWFuZCcpXG4gICAgfVxuXG4gICAgLyohXG4gICAgICogbW9iaWxlIGNoZWNrXG4gICAgICovXG4gICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21tYW5kRXJyb3IoJ2Nob29zZUZpbGUgY29tbWFuZCBpcyBub3Qgc3VwcG9ydGVkIG9uIG1vYmlsZSBwbGF0Zm9ybXMnKVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGZzLmV4aXN0cyhsb2NhbFBhdGgsIChleGlzdHMpID0+IHtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICBpZiAoIWV4aXN0cykge1xuICAgICAgICAgICAgICAgIHJldHVybiByZWplY3QobmV3IENvbW1hbmRFcnJvcignRmlsZSB0byB1cGxvYWQgZG9lcyBub3QgZXhpc3RzIG9uIHlvdXIgc3lzdGVtJykpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudXBsb2FkRmlsZShsb2NhbFBhdGgpLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZFZhbHVlKHNlbGVjdG9yLCByZXMudmFsdWUpXG4gICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdClcbiAgICAgICAgfSlcbiAgICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBjaG9vc2VGaWxlXG4iXX0=