const report = require("multiple-cucumber-html-reporter"); const dayjs = require("dayjs"); const fs = require("fs"); const data = fs.readFileSync("./reports/cypress-report.json", { encoding: "utf8", flag: "r", }); const runInfo = JSON.parse(data); const osName = () => { switch (runInfo["osName"]) { case "win32": return "windows"; case "linux": return "ubuntu"; default: console.log("Undefined OS"); } }; const browserName = () => { switch (runInfo["browserName"]) { case "chrome": return "Chrome"; case "firefox": return "Firefox"; case "edge": return "Edge"; case "webkit": return "Safari"; default: console.log("Undefined Browser"); } }; report.generate({ jsonDir: "./reports/cucumber-json", reportPath: "./reports", metadata: { browser: { name: browserName(), version: runInfo["browserVersion"], }, platform: { name: osName(), version: runInfo["osVersion"], }, }, customData: { title: "Run Info", data: [ { label: "Project", value: "Sample " }, { label: "Release", value: "1.0.0" }, { label: "Cypress Version", value: runInfo["cypressVersion"] }, { label: "Node Version", value: runInfo["nodeVersion"] }, { label: "Execution Start Time", value: dayjs(runInfo["startedTestsAt"]).format( "YYYY-MM-DD HH:mm:ss.SSS" ), }, { label: "Execution End Time", value: dayjs(runInfo["endedTestsAt"]).format("YYYY-MM-DD HH:mm:ss.SSS"), }, ], }, pageTitle: "Sample", reportName: "Sample", displayDuration: true, displayReportTime: true, });