qa-shadow-report
Version:
npm package that prints formatted test reports into a google sheet or csv file
57 lines (53 loc) • 1.78 kB
JavaScript
import { sheets, auth, spreadsheetId } from '../auth.js';
/**
* Appends values to a specified sheet within the spreadsheet.
*
* @param {string} sheetTitle - Title of the sheet where data will be appended.
* @param {Array<Array<string|number>>} values - 2D array of values to append.
* @param sheetsInstance
*/
export const writeToSheet = async (sheetTitle, values, sheetsInstance) => {
const sheetsAPI = sheetsInstance || sheets;
const authToUse = sheetsInstance ? sheetsInstance.auth : auth;
const spreadsheetIdToUse =
sheetsInstance && sheetsInstance.spreadsheetId
? sheetsInstance.spreadsheetId
: spreadsheetId;
try {
await sheetsAPI.spreadsheets.values.append({
auth: authToUse,
spreadsheetId: spreadsheetIdToUse,
range: sheetTitle,
valueInputOption: 'USER_ENTERED',
resource: { values },
});
} catch (error) {
console.error(`Error writing to sheet "${sheetTitle}":`, error);
throw error;
}
};
/**
* Sends a batch update request to the spreadsheet with the given payload.
*
* @param {Object} payload - The data and instructions for the batch update.
* @param sheetsInstance
*/
export const batchUpdateMasterSheet = async (payload, sheetsInstance) => {
const sheetsAPI = sheetsInstance || sheets;
const authToUse =
sheetsInstance && sheetsInstance.auth ? sheetsInstance.auth : auth;
const spreadsheetIdToUse =
sheetsInstance && sheetsInstance.spreadsheetId
? sheetsInstance.spreadsheetId
: spreadsheetId;
try {
await sheetsAPI.spreadsheets.batchUpdate({
auth: authToUse,
spreadsheetId: spreadsheetIdToUse,
resource: payload,
});
} catch (error) {
console.error('Error applying batch update:', error);
throw error;
}
};