У меня есть утилита node js для загрузки и конвертации листа Google в CSV. Как написать модульный тест для приведенной ниже функции.
Загрузить Google Sheet:
const downloadFile = (file, drive, callback) => {
var {
fileId,
destFolder,
destFile
} = file,
destFile = destFolder + ((destFile).toLowerCase());
console.log('Downloading file :: ', fileId)
var fileWriteStream = fs.createWriteStream(destFile);
drive.files.export({
fileId,
mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
}, {
responseType: 'stream'
}).then(function (gFileReadStream) {
gFileReadStream
.data
.pipe(fileWriteStream)
.on('error', callback)
.on('finish', callback.bind(this, null));
});
};
Преобразовать Xlsx в функцию CSV:
const convertSheetsToCsvAndSave = (file, callback) => {
var {
destFolder,
destFile,
fileId
} = file,
wb = xlsx.readFile(destFolder + ((destFile).toLowerCase())),
sheetsList = [];
sheetsList = wb.SheetNames;
console.log('Converting file to csv :: ', fileId)
eachSeries(sheetsList, function (sheetName, cb) {
var dataInSelectedTab = wb.Sheets[sheetName];
var output_file_name = `${sheetName}.csv`;
var updated_output_file_name = (((output_file_name).toLowerCase()).trim()).replace(/ /g, '_');
console.log('Sheet name: ', updated_output_file_name)
var csvData = xlsx.utils.sheet_to_csv(dataInSelectedTab);
fs.writeFile(destFolder + updated_output_file_name, csvData, cb);
}, function (error) {
if (error) {
console.log('Error while converting google sheets to csv file format.);
} else {
console.log('Google sheet is converted to csv file format.);
}
callback(error);
});
};
Как написать модуль проверить обе вышеуказанные функции в node js.