proto-coverage-reporter
Version:
Jest custome reporter for gRPC server E2E testing
38 lines (37 loc) • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.writeLog = writeLog;
exports.readLogsMap = readLogsMap;
const fs = require("fs");
const path = require("path");
const const_1 = require("./const");
const generateRandomString = () => `${Date.now()}${Math.random()}`;
function writeLog(log) {
const fileName = generateRandomString();
fs.writeFileSync(path.resolve(const_1.logsDirPath, `${fileName}.json`), JSON.stringify(log));
}
async function readLogsMap() {
const exist = fs.existsSync(const_1.logsDirPath);
if (!exist) {
console.info('[proto-coverage-reporter]: logs folder does not exist');
return {};
}
const logsDir = fs.readdirSync(const_1.logsDirPath);
const logs = await Promise.all(logsDir.map(async (log) => {
const filePath = path.resolve(const_1.logsDirPath, log);
return JSON.parse(fs.readFileSync(filePath, 'utf-8'));
}));
return logs.reduce((acc, ac) => {
const { package_name, method_name, status_code } = ac;
acc[package_name] = {
...(acc[package_name] || {}),
[method_name]: {
status_codes: {
...(((acc[package_name] || {})[method_name] || {}).status_codes || {}),
[status_code]: true,
},
},
};
return acc;
}, {});
}