Как написать скрипт юнит-теста для google sheet auth и скачать в node js? - PullRequest
0 голосов
/ 04 мая 2020

У меня есть утилита 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...