cypress-downloadfile
Version:
Cypress custom command to download files
36 lines (35 loc) • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.downloadFile = downloadFile;
var fetch = require('cross-fetch');
var fs = require('fs-extra');
var path = require('path');
function downloadFile(args) {
var directory = args.directory;
var cookieHeader = args.cookies.map(function (e) {
return e.name + '=' + e.value;
}).join(';');
var userAgent = args.userAgent || 'cross-fetch';
var fileName = args.fileName;
return fetch(args.url, {
headers: {
Cookie: cookieHeader,
'User-Agent': userAgent
}
}).then(function (response) {
if (!response) {
throw new Error('No response');
}
if (response.status !== 200) {
throw new Error('Bad status code: ' + response.status);
}
return response.arrayBuffer();
}).then(function (arrayBuffer) {
var file = path.join(directory, fileName);
var myBuffer = new Uint8Array(arrayBuffer);
fs.outputFileSync(file, myBuffer);
return 'downloadFile ' + file + ' downloaded';
});
}