UNPKG

@jasbel/wdio-html-nice-reporter

Version:

WebdriverIO report plugin. Create an HTML formatted report. compatible with webdriverio version 9

52 lines (51 loc) 2.12 kB
import logger from '@wdio/logger'; import json from 'big-json'; import fs from 'fs-extra'; class JsonGenerator { static writeJson(jsonFile, stringified, reportOptions, reportData) { fs.outputFileSync(jsonFile, stringified); JsonGenerator.LOG.info("Json write completed: " + jsonFile); } static serializeJson(jsonFile, reportOptions, reportData) { JsonGenerator.LOG.info("Json stringify starting: " + jsonFile); return json.stringify({ body: reportData }) .then(stringified => { try { JsonGenerator.LOG.info("Json stringify complete"); JsonGenerator.writeJson(jsonFile, stringified, reportOptions, reportData); } catch (error) { JsonGenerator.LOG.error("Json write failed: " + error); } }); } static jsonOutput(reportOptions, reportData) { try { if (fs.pathExistsSync(reportOptions.outputDir)) { if (reportOptions.removeOutput) { for (let i = 0; i < reportData.suites.length; i++) { let suite = reportData.suites[i]; for (let j = 0; j < suite.tests.length; j++) { let test = suite.tests[j]; test.output = []; } } } if (reportOptions.produceJson) { let jsonFile = reportData.reportFile.replace('.html', '.json'); return this.serializeJson(jsonFile, reportOptions, reportData); } else { JsonGenerator.LOG.info("reportOptions.produceJson is false"); return Promise.resolve(); } } } catch (ex) { JsonGenerator.LOG.error("Json Generation processing ended in error: " + ex); return Promise.resolve(); } } } JsonGenerator.LOG = logger('JsonGenerator'); export default JsonGenerator;