у меня есть функция:
/** Скачает изображение по ссылке, сохранит в папку */
exports.downloadImage = function (imageURL) {
return new Promise(function (res, rej) {
var ext = path.extname(imageURL);
var imageName = utils.getImageName(imageURL);
var dest = path.join(imageSavePath, imageName);
var file = fs.createWriteStream(dest);
/** @type {Object} RESOLVE ARGUMENT */
var info = {imageURL: imageURL, dest: dest, ext: ext, imageName: imageName};
var request = http.get(imageURL, function (response) {
response.pipe(file);
file.on('finish', function () {
file.close(function () {
res(info);
});
});
file.on('error', function (err) {
fs.unlinkSync(dest);
rej(err);
});
});
});
};
которая качает картинку из инета и сохраняет её на диск.
я написал такой тест к ней:
describe('downloadImage', function () {
it('should download image by url', function () {
return utils.
downloadImage('http://i.imgur.com/emZNv0N.jpg').
then(function (info) {
fs.unlinkSync(info.dest);
return Promise.resolve(info);
}).
should.eventually.
include({imageURL: 'http://i.imgur.com/emZNv0N.jpg', ext: '.jpg'}).
and.property('imageName').match(/^product-image-/);
});
});
всё хорошо, но тест выполняется 600 мс
вопрос - как подменить модуль http или вообще её переписать, чтобы можно было не скачивать изображение при тестировании?