cucumber-html-report-generator
Version:
Generate beautiful cucumberjs html reports for multiple instances (browsers / devices)
66 lines • 3.05 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CollectJsons = void 0;
const CommonFunctions = __importStar(require("../common-functions/common-functions"));
const Messages = __importStar(require("../helpers/console-messages"));
class CollectJsons {
constructor(userProperties) {
this.getJsonReportFiles = async () => {
let files = await CommonFunctions.getFilesAsync(this.userProperties.jsonDir);
files = files.sort();
const validReportsList = files.filter(file => file.endsWith('.json'));
const validReports = await Promise.all(validReportsList.map(async (element) => {
const result = await CommonFunctions.readJsonFile(element);
const resultFiltered = Array.isArray(result)
? result.filter(feature => typeof feature.id !== 'undefined' && typeof feature.keyword !== 'undefined')
: null;
return Array.isArray(resultFiltered) && resultFiltered.length ? resultFiltered : null;
}));
const filteredReports = validReports.filter((feature) => feature !== null);
return filteredReports;
};
this.userProperties = userProperties;
}
async createJoinedJson() {
const jsonOutput = Array();
const fileList = await this.getJsonReportFiles();
if (!fileList.length) {
throw new Error(Messages.noJsonFilesProvided(this.userProperties.jsonDir));
}
fileList.forEach(json => {
json.forEach(feature => {
feature.id = feature.id?.toString().replace('/', '_');
jsonOutput.push(feature);
});
});
if (this.userProperties.saveCollectedJSON) {
await CommonFunctions.saveJsonFile(this.userProperties.reportPath, '/merged-output.json', jsonOutput);
}
return jsonOutput;
}
}
exports.CollectJsons = CollectJsons;
//# sourceMappingURL=collect-jsons.js.map