UNPKG

webdriverio

Version:

Next-gen browser and mobile automation test framework for Node.js

38 lines (28 loc) 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = uploadFile; var _fs = _interopRequireDefault(require("fs")); var _path = _interopRequireDefault(require("path")); var _archiver = _interopRequireDefault(require("archiver")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } async function uploadFile(localPath) { if (typeof localPath !== 'string') { throw new Error('number or type of arguments don\'t agree with uploadFile command'); } if (typeof this.file !== 'function') { throw new Error(`The uploadFile command is not available in ${this.capabilities.browserName}`); } let zipData = []; let source = _fs.default.createReadStream(localPath); return new Promise((resolve, reject) => { (0, _archiver.default)('zip').on('error', err => reject(err)).on('data', data => zipData.push(data)).on('end', () => this.file(Buffer.concat(zipData).toString('base64')).then(resolve, reject)).append(source, { name: _path.default.basename(localPath) }).finalize(err => { if (err) { reject(err); } }); }); }