jest-html-reporter 3.3.0 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +9 -9
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var t=e(require("dateformat")),s=e(require("fs")),i=e(require("mkdirp")),a=e(require("path")),l=e(require("strip-ansi")),n=e(require("xmlbuilder"));const o=e=>{const t=[],s=[],i=[];return e.forEach(e=>{const a=[],l=[],n=[];e.testResults.forEach(e=>{"pending"===e.status?a.push(e):"failed"===e.status?l.push(e):n.push(e)}),a.length>0&&t.push({...e,testResults:a}),l.length>0&&s.push({...e,testResults:l}),n.length>0&&i.push({...e,testResults:n})}),[].concat(t,s,i)},r=e=>(e&&e.sort((e,t)=>t.perfStats.end-t.perfStats.start-(e.perfStats.end-e.perfStats.start)),e),u=e=>(e&&e.sort((e,t)=>e.perfStats.end-e.perfStats.start-(t.perfStats.end-t.perfStats.start)),e),c=e=>{if(e){const t=e.sort((e,t)=>h(e.testFilePath,t.testFilePath,!0));return t.forEach(e=>{e.testResults.sort((e,t)=>h(e.ancestorTitles.join(" "),t.ancestorTitles.join(" "),!0)),e.testResults.sort((e,t)=>h(e.title,t.title,!0))}),t}return e},d=e=>{if(e){const t=e.sort((e,t)=>h(e.testFilePath,t.testFilePath));return t.forEach(e=>{e.testResults.sort((e,t)=>h(e.ancestorTitles.join(" "),t.ancestorTitles.join(" "))),e.testResults.sort((e,t)=>h(e.title,t.title))}),t}return e},h=(e,t,s=!1)=>!s&&e<t||s&&e>t?-1:!s&&e>t||s&&e<t?1:0;class g{constructor(e,t,s,i){this.testData=e,this.jestConfig=s,this.consoleLogList=i,this.setupConfig(t)}async generate(){try{const e=await this.renderTestReport(),t=this.replaceRootDirInPath(this.jestConfig?this.jestConfig.rootDir:"",this.getConfigValue("outputPath"));return await i(a.dirname(t)),this.getConfigValue("append")?await this.appendToFile(t,e.toString()):await s.writeFileSync(t,e.toString()),this.logMessage("success",`Report generated (${t})`),e}catch(e){this.logMessage("error",e)}}async renderTestReport(){const e=await this.renderTestReportContent();if(this.getConfigValue("boilerplate")){return(await s.readFileSync(this.getConfigValue("boilerplate"),"utf8")).replace("{jesthtmlreporter-content}",e&&e.toString())}const t=n.create({html:{}}),i=t.ele("head");i.ele("meta",{charset:"utf-8"}),i.ele("title",{},this.getConfigValue("pageTitle"));let l=a.join(__dirname,`../style/${this.getConfigValue("theme")}.css`);this.getConfigValue("styleOverridePath")&&(l=this.getConfigValue("styleOverridePath"));if(!this.getConfigValue("useCssFile")&&!this.getConfigValue("styleOverridePath")){const e=await s.readFileSync(l,"utf8");i.raw(`<style type="text/css">${e}</style>`)}else i.ele("link",{rel:"stylesheet",type:"text/css",href:l});const o=t.ele("body");return e&&o.raw(e.toString()),this.getConfigValue("customScriptPath")&&o.raw(`<script src="${this.getConfigValue("customScriptPath")}"><\/script>`),t}renderTestSuiteInfo(e,t){const s=e.ele("div",{class:"suite-info"});s.ele("div",{class:"suite-path"},t.testFilePath);const i=(t.perfStats.end-t.perfStats.start)/1e3;s.ele("div",{class:"suite-time"+(i>this.getConfigValue("executionTimeWarningThreshold")?" warn":"")},i+"s")}renderSuiteFailure(e,t,s){const i=e.ele("div",{id:"suite-"+(s+1),class:"suite-container"});this.renderTestSuiteInfo(i,t);i.ele("div",{class:"suite-tests"}).ele("div",{class:"test-result failed"}).ele("div",{class:"failureMessages suiteFailure"}," ").ele("pre",{class:"failureMsg"},l(t.failureMessage))}async renderTestReportContent(){try{if(!this.testData||0===Object.entries(this.testData).length)throw Error("No test data provided");const e=n.begin().element("div",{id:"jesthtml-content"}),s=e.ele("header");s.ele("h1",{id:"title"},this.getConfigValue("pageTitle"));const i=this.getConfigValue("logo");i&&s.ele("img",{id:"logo",src:i});const a=e.ele("div",{id:"metadata-container"});if(this.testData.startTime&&!isNaN(this.testData.startTime)){const e=new Date(this.testData.startTime);if(e){const s=t(e,this.getConfigValue("dateFormat"));a.ele("div",{id:"timestamp"},"Started: "+s)}}const h=a.ele("div",{id:"summary"}),g=h.ele("div",{id:"suite-summary"});g.ele("div",{class:"summary-total"},`Suites (${this.testData.numTotalTestSuites})`),g.ele("div",{class:"summary-passed"+(0===this.testData.numPassedTestSuites?" summary-empty":"")},this.testData.numPassedTestSuites+" passed"),g.ele("div",{class:"summary-failed"+(0===this.testData.numFailedTestSuites?" summary-empty":"")},this.testData.numFailedTestSuites+" failed"),g.ele("div",{class:"summary-pending"+(0===this.testData.numPendingTestSuites?" summary-empty":"")},this.testData.numPendingTestSuites+" pending"),this.testData.snapshot.unchecked>0&&this.getConfigValue("includeObsoleteSnapshots")&&g.ele("div",{class:"summary-obsolete-snapshots"},this.testData.snapshot.unchecked+" obsolete snapshots");const f=h.ele("div",{id:"test-summary"});f.ele("div",{class:"summary-total"},`Tests (${this.testData.numTotalTests})`),f.ele("div",{class:"summary-passed"+(0===this.testData.numPassedTests?" summary-empty":"")},this.testData.numPassedTests+" passed"),f.ele("div",{class:"summary-failed"+(0===this.testData.numFailedTests?" summary-empty":"")},this.testData.numFailedTests+" failed"),f.ele("div",{class:"summary-pending"+(0===this.testData.numPendingTests?" summary-empty":"")},this.testData.numPendingTests+" pending");const m=((e,t)=>{switch(t&&t.toLowerCase()){case"status":return o(e);case"executiondesc":return r(e);case"executionasc":return u(e);case"titledesc":return c(e);case"titleasc":return d(e);default:return e}})(this.testData.testResults,this.getConfigValue("sort")),p=this.getConfigValue("statusIgnoreFilter");let T=[];return p&&(T=p.replace(/\s/g,"").toLowerCase().split(",")),m&&m.map((t,s)=>{if(!t.testResults||t.testResults.length<=0)return void(t.failureMessage&&this.getConfigValue("includeSuiteFailure")&&this.renderSuiteFailure(e,t,s));const i=e.ele("div",{id:"suite-"+(s+1),class:"suite-container"});this.renderTestSuiteInfo(i,t);const a=i.ele("div",{class:"suite-tests"});t.testResults.filter(e=>!T.includes(e.status)).forEach(async e=>{const t=a.ele("div",{class:"test-result "+e.status}),s=t.ele("div",{class:"test-info"});if(s.ele("div",{class:"test-suitename"},e.ancestorTitles&&e.ancestorTitles.length>0?e.ancestorTitles.join(" > "):" "),s.ele("div",{class:"test-title"},e.title),s.ele("div",{class:"test-status"},e.status),s.ele("div",{class:"test-duration"},e.duration/1e3+"s"),e.failureMessages&&e.failureMessages.length>0&&this.getConfigValue("includeFailureMsg")){const s=t.ele("div",{class:"failureMessages"}," ");e.failureMessages.forEach(e=>{s.ele("pre",{class:"failureMsg"},l(e))})}}),this.consoleLogList&&this.consoleLogList.length>0&&this.getConfigValue("includeConsoleLog")&&this.renderSuiteConsoleLogs(t,i),t.snapshot.unchecked>0&&this.getConfigValue("includeObsoleteSnapshots")&&this.renderSuiteObsoleteSnapshots(i,t)}),e}catch(e){this.logMessage("error",e)}}renderSuiteConsoleLogs(e,t){const s=this.consoleLogList.find(t=>t.filePath===e.testFilePath);if(s&&s.logs.length>0){const e=t.ele("div",{class:"suite-consolelog"});e.ele("div",{class:"suite-consolelog-header"},"Console Log"),s.logs.forEach(t=>{const s=e.ele("div",{class:"suite-consolelog-item"});s.ele("pre",{class:"suite-consolelog-item-origin"},l(t.origin)),s.ele("pre",{class:"suite-consolelog-item-message"},l(t.message))})}}renderSuiteObsoleteSnapshots(e,t){const s=e.ele("div",{class:"suite-obsolete-snapshots"});s.ele("div",{class:"suite-obsolete-snapshots-header"},"Obsolete snapshots");s.ele("div",{class:"suite-obsolete-snapshots-item"}).ele("pre",{class:"suite-obsolete-snapshots-item-message"},t.snapshot.uncheckedKeys.join("\n"))}setupConfig(e){const{append:t,boilerplate:i,customScriptPath:l,dateFormat:n,executionTimeWarningThreshold:o,logo:r,includeConsoleLog:u,includeFailureMsg:c,includeSuiteFailure:d,includeObsoleteSnapshots:h,outputPath:g,pageTitle:f,theme:m,sort:p,statusIgnoreFilter:T,styleOverridePath:S,useCssFile:E}=e||{};this.config={append:{defaultValue:!1,environmentVariable:"JEST_HTML_REPORTER_APPEND",configValue:t},boilerplate:{defaultValue:null,environmentVariable:"JEST_HTML_REPORTER_BOILERPLATE",configValue:i},customScriptPath:{defaultValue:null,environmentVariable:"JEST_HTML_REPORTER_CUSTOM_SCRIPT_PATH",configValue:l},dateFormat:{defaultValue:"yyyy-mm-dd HH:MM:ss",environmentVariable:"JEST_HTML_REPORTER_DATE_FORMAT",configValue:n},executionTimeWarningThreshold:{defaultValue:5,environmentVariable:"JEST_HTML_REPORTER_EXECUTION_TIME_WARNING_THRESHOLD",configValue:o},logo:{defaultValue:null,environmentVariable:"JEST_HTML_REPORTER_LOGO",configValue:r},includeFailureMsg:{defaultValue:!1,environmentVariable:"JEST_HTML_REPORTER_INCLUDE_FAILURE_MSG",configValue:c},includeSuiteFailure:{defaultValue:!1,environmentVariable:"JEST_HTML_REPORTER_INCLUDE_SUITE_FAILURE",configValue:d},includeObsoleteSnapshots:{defaultValue:!1,environmentVariable:"JEST_HTML_REPORTER_INCLUDE_OBSOLETE_SNAPSHOTS",configValue:h},includeConsoleLog:{defaultValue:!1,environmentVariable:"JEST_HTML_REPORTER_INCLUDE_CONSOLE_LOG",configValue:u},outputPath:{defaultValue:a.join(process.cwd(),"test-report.html"),environmentVariable:"JEST_HTML_REPORTER_OUTPUT_PATH",configValue:g},pageTitle:{defaultValue:"Test Report",environmentVariable:"JEST_HTML_REPORTER_PAGE_TITLE",configValue:f},theme:{defaultValue:"defaultTheme",environmentVariable:"JEST_HTML_REPORTER_THEME",configValue:m},sort:{defaultValue:null,environmentVariable:"JEST_HTML_REPORTER_SORT",configValue:p},statusIgnoreFilter:{defaultValue:null,environmentVariable:"JEST_HTML_REPORTER_STATUS_FILTER",configValue:T},styleOverridePath:{defaultValue:null,environmentVariable:"JEST_HTML_REPORTER_STYLE_OVERRIDE_PATH",configValue:S},useCssFile:{defaultValue:!1,environmentVariable:"JEST_HTML_REPORTER_USE_CSS_FILE",configValue:E}};try{const e=s.readFileSync(a.join(process.cwd(),"jesthtmlreporter.config.json"),"utf8");if(e){const t=JSON.parse(e);for(const e of Object.keys(t))this.config[e]&&(this.config[e].configValue=t[e]);return this.config}}catch(e){}try{const e=s.readFileSync(a.join(process.cwd(),"package.json"),"utf8");if(e){const t=JSON.parse(e)["jest-html-reporter"];for(const e of Object.keys(t))this.config[e]&&(this.config[e].configValue=t[e]);return this.config}}catch(e){}}getConfigValue(e){const t=this.config[e];if(t)return process.env[t.environmentVariable]?process.env[t.environmentVariable]:t.configValue||t.defaultValue}async appendToFile(e,t){let i=t;const a=await s.readFileSync(e,"utf8");if(a){const l=/<body>(.*?)<\/body>/gm.exec(t);if(l){const[e]=l;i=e}let n=a;const o=/<\/body>/gm.exec(a),r=o?o.index:0;return n=[a.slice(0,r),i,a.slice(r)].join(""),s.writeFileSync(e,n)}return s.appendFileSync(e,i)}replaceRootDirInPath(e,t){return/^<rootDir>/.test(t)?a.resolve(e,a.normalize("./"+t.substr("<rootDir>".length))):t}logMessage(e="default",t){const s={default:"%s",success:"%s",error:"%s"},i=s[e]?s[e]:s.default,a="jest-html-reporter >> "+t;return void 0===process.env.JEST_WORKER_ID&&console.log(i,a),{logColor:i,logMsg:a}}}const f=(e,t,s,i)=>new g(e,t,s,i).generate();module.exports=function(e,t){const s=[];if(Object.prototype.hasOwnProperty.call(e,"testResults"))return f(e.testResults,t,e),e;this.onTestResult=(e,t)=>{t.console&&s.push({filePath:t.testFilePath,logs:t.console})},this.onRunComplete=(i,a)=>f(a,t,e,s)};
1
+ "use strict";var e=require("dateformat"),t=require("fs"),s=require("mkdirp"),a=require("path"),i=require("strip-ansi"),l=require("xmlbuilder");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=n(e),r=n(t),u=n(s),c=n(a),d=n(i),f=n(l);const h=e=>{const t=[],s=[],a=[];return e.forEach((e=>{const i=[],l=[],n=[];e.testResults.forEach((e=>{"pending"===e.status?i.push(e):"failed"===e.status?l.push(e):n.push(e)})),i.length>0&&t.push({...e,testResults:i}),l.length>0&&s.push({...e,testResults:l}),n.length>0&&a.push({...e,testResults:n})})),[].concat(t,s,a)},g=e=>(e&&e.sort(((e,t)=>t.perfStats.end-t.perfStats.start-(e.perfStats.end-e.perfStats.start))),e),m=e=>(e&&e.sort(((e,t)=>e.perfStats.end-e.perfStats.start-(t.perfStats.end-t.perfStats.start))),e),p=e=>{if(e){const t=e.sort(((e,t)=>S(e.testFilePath,t.testFilePath,!0)));return t.forEach((e=>{e.testResults.sort(((e,t)=>S(e.ancestorTitles.join(" "),t.ancestorTitles.join(" "),!0))),e.testResults.sort(((e,t)=>S(e.title,t.title,!0)))})),t}return e},T=e=>{if(e){const t=e.sort(((e,t)=>S(e.testFilePath,t.testFilePath)));return t.forEach((e=>{e.testResults.sort(((e,t)=>S(e.ancestorTitles.join(" "),t.ancestorTitles.join(" ")))),e.testResults.sort(((e,t)=>S(e.title,t.title)))})),t}return e},S=(e,t,s=!1)=>!s&&e<t||s&&e>t?-1:!s&&e>t||s&&e<t?1:0;class E{constructor(e){this.testData=e.testData,this.jestConfig=e.jestConfig,this.consoleLogList=e.consoleLogs,this.setupConfig(e.options)}async generate(){try{const e=await this.renderTestReport(),t=this.replaceRootDirInPath(this.jestConfig?this.jestConfig.rootDir:"",this.getConfigValue("outputPath"));return await u.default(c.default.dirname(t)),this.getConfigValue("append")?await this.appendToFile(t,e.toString()):await r.default.writeFileSync(t,e.toString()),this.logMessage("success",`Report generated (${t})`),e}catch(e){this.logMessage("error",e)}}async renderTestReport(){const e=await this.renderTestReportContent();if(this.getConfigValue("boilerplate")){return(await r.default.readFileSync(this.getConfigValue("boilerplate"),"utf8")).replace("{jesthtmlreporter-content}",e&&e.toString())}const t=f.default.create({html:{}}),s=t.ele("head");s.ele("meta",{charset:"utf-8"}),s.ele("title",{},this.getConfigValue("pageTitle"));let a=c.default.join(__dirname,`../style/${this.getConfigValue("theme")}.css`);this.getConfigValue("styleOverridePath")&&(a=this.getConfigValue("styleOverridePath"));if(!this.getConfigValue("useCssFile")&&!this.getConfigValue("styleOverridePath")){const e=await r.default.readFileSync(a,"utf8");s.raw(`<style type="text/css">${e}</style>`)}else s.ele("link",{rel:"stylesheet",type:"text/css",href:a});const i=t.ele("body");return e&&i.raw(e.toString()),this.getConfigValue("customScriptPath")&&i.raw(`<script src="${this.getConfigValue("customScriptPath")}"><\/script>`),t}renderTestSuiteInfo(e,t){const s=e.ele("div",{class:"suite-info"});s.ele("div",{class:"suite-path"},t.testFilePath);const a=(t.perfStats.end-t.perfStats.start)/1e3;s.ele("div",{class:"suite-time"+(a>this.getConfigValue("executionTimeWarningThreshold")?" warn":"")},`${a}s`)}renderSuiteFailure(e,t,s){const a=e.ele("div",{id:`suite-${s+1}`,class:"suite-container"});this.renderTestSuiteInfo(a,t);a.ele("div",{class:"suite-tests"}).ele("div",{class:"test-result failed"}).ele("div",{class:"failureMessages suiteFailure"}," ").ele("pre",{class:"failureMsg"},d.default(t.failureMessage))}async renderTestReportContent(){try{if(!this.testData||0===Object.entries(this.testData).length)throw Error("No test data provided");const e=f.default.begin().element("div",{id:"jesthtml-content"}),t=e.ele("header");t.ele("h1",{id:"title"},this.getConfigValue("pageTitle"));const s=this.getConfigValue("logo");s&&t.ele("img",{id:"logo",src:s});const a=e.ele("div",{id:"metadata-container"});if(this.testData.startTime&&!isNaN(this.testData.startTime)){const e=new Date(this.testData.startTime);if(e){const t=o.default(e,this.getConfigValue("dateFormat"));a.ele("div",{id:"timestamp"},`Started: ${t}`)}}const i=a.ele("div",{id:"summary"}),l=i.ele("div",{id:"suite-summary"});l.ele("div",{class:"summary-total"},`Suites (${this.testData.numTotalTestSuites})`),l.ele("div",{class:"summary-passed"+(0===this.testData.numPassedTestSuites?" summary-empty":"")},`${this.testData.numPassedTestSuites} passed`),l.ele("div",{class:"summary-failed"+(0===this.testData.numFailedTestSuites?" summary-empty":"")},`${this.testData.numFailedTestSuites} failed`),l.ele("div",{class:"summary-pending"+(0===this.testData.numPendingTestSuites?" summary-empty":"")},`${this.testData.numPendingTestSuites} pending`),this.testData.snapshot&&this.testData.snapshot.unchecked>0&&this.getConfigValue("includeObsoleteSnapshots")&&l.ele("div",{class:"summary-obsolete-snapshots"},`${this.testData.snapshot.unchecked} obsolete snapshots`);const n=i.ele("div",{id:"test-summary"});n.ele("div",{class:"summary-total"},`Tests (${this.testData.numTotalTests})`),n.ele("div",{class:"summary-passed"+(0===this.testData.numPassedTests?" summary-empty":"")},`${this.testData.numPassedTests} passed`),n.ele("div",{class:"summary-failed"+(0===this.testData.numFailedTests?" summary-empty":"")},`${this.testData.numFailedTests} failed`),n.ele("div",{class:"summary-pending"+(0===this.testData.numPendingTests?" summary-empty":"")},`${this.testData.numPendingTests} pending`);const r=((e,t)=>{switch(t&&t.toLowerCase()){case"status":return h(e);case"executiondesc":return g(e);case"executionasc":return m(e);case"titledesc":return p(e);case"titleasc":return T(e);default:return e}})(this.testData.testResults,this.getConfigValue("sort")),u=this.getConfigValue("statusIgnoreFilter");let c=[];return u&&(c=u.replace(/\s/g,"").toLowerCase().split(",")),r&&r.map(((t,s)=>{if(!t.testResults||t.testResults.length<=0)return void(t.failureMessage&&this.getConfigValue("includeSuiteFailure")&&this.renderSuiteFailure(e,t,s));const a=e.ele("div",{id:`suite-${s+1}`,class:"suite-container"});this.renderTestSuiteInfo(a,t);const i=a.ele("div",{class:"suite-tests"});t.testResults.filter((e=>!c.includes(e.status))).forEach((async e=>{const t=i.ele("div",{class:`test-result ${e.status}`}),s=t.ele("div",{class:"test-info"});if(s.ele("div",{class:"test-suitename"},e.ancestorTitles&&e.ancestorTitles.length>0?e.ancestorTitles.join(" > "):" "),s.ele("div",{class:"test-title"},e.title),s.ele("div",{class:"test-status"},e.status),s.ele("div",{class:"test-duration"},e.duration/1e3+"s"),e.failureMessages&&e.failureMessages.length>0&&this.getConfigValue("includeFailureMsg")){const s=t.ele("div",{class:"failureMessages"}," ");e.failureMessages.forEach((e=>{s.ele("pre",{class:"failureMsg"},d.default(e))}))}})),this.consoleLogList&&this.consoleLogList.length>0&&this.getConfigValue("includeConsoleLog")&&this.renderSuiteConsoleLogs(t,a),t.snapshot&&t.snapshot.unchecked>0&&this.getConfigValue("includeObsoleteSnapshots")&&this.renderSuiteObsoleteSnapshots(a,t)})),e}catch(e){this.logMessage("error",e)}}renderSuiteConsoleLogs(e,t){const s=this.consoleLogList.find((t=>t.filePath===e.testFilePath));if(s&&s.logs.length>0){const e=t.ele("div",{class:"suite-consolelog"});e.ele("div",{class:"suite-consolelog-header"},"Console Log"),s.logs.forEach((t=>{const s=e.ele("div",{class:"suite-consolelog-item"});s.ele("pre",{class:"suite-consolelog-item-origin"},d.default(t.origin)),s.ele("pre",{class:"suite-consolelog-item-message"},d.default(t.message))}))}}renderSuiteObsoleteSnapshots(e,t){const s=e.ele("div",{class:"suite-obsolete-snapshots"});s.ele("div",{class:"suite-obsolete-snapshots-header"},"Obsolete snapshots");s.ele("div",{class:"suite-obsolete-snapshots-item"}).ele("pre",{class:"suite-obsolete-snapshots-item-message"},t.snapshot.uncheckedKeys.join("\n"))}setupConfig(e){const{append:t,boilerplate:s,customScriptPath:a,dateFormat:i,executionTimeWarningThreshold:l,logo:n,includeConsoleLog:o,includeFailureMsg:u,includeSuiteFailure:d,includeObsoleteSnapshots:f,outputPath:h,pageTitle:g,theme:m,sort:p,statusIgnoreFilter:T,styleOverridePath:S,useCssFile:E}=e||{};this.config={append:{defaultValue:!1,environmentVariable:"JEST_HTML_REPORTER_APPEND",configValue:t},boilerplate:{defaultValue:null,environmentVariable:"JEST_HTML_REPORTER_BOILERPLATE",configValue:s},customScriptPath:{defaultValue:null,environmentVariable:"JEST_HTML_REPORTER_CUSTOM_SCRIPT_PATH",configValue:a},dateFormat:{defaultValue:"yyyy-mm-dd HH:MM:ss",environmentVariable:"JEST_HTML_REPORTER_DATE_FORMAT",configValue:i},executionTimeWarningThreshold:{defaultValue:5,environmentVariable:"JEST_HTML_REPORTER_EXECUTION_TIME_WARNING_THRESHOLD",configValue:l},logo:{defaultValue:null,environmentVariable:"JEST_HTML_REPORTER_LOGO",configValue:n},includeFailureMsg:{defaultValue:!1,environmentVariable:"JEST_HTML_REPORTER_INCLUDE_FAILURE_MSG",configValue:u},includeSuiteFailure:{defaultValue:!1,environmentVariable:"JEST_HTML_REPORTER_INCLUDE_SUITE_FAILURE",configValue:d},includeObsoleteSnapshots:{defaultValue:!1,environmentVariable:"JEST_HTML_REPORTER_INCLUDE_OBSOLETE_SNAPSHOTS",configValue:f},includeConsoleLog:{defaultValue:!1,environmentVariable:"JEST_HTML_REPORTER_INCLUDE_CONSOLE_LOG",configValue:o},outputPath:{defaultValue:c.default.join(process.cwd(),"test-report.html"),environmentVariable:"JEST_HTML_REPORTER_OUTPUT_PATH",configValue:h},pageTitle:{defaultValue:"Test Report",environmentVariable:"JEST_HTML_REPORTER_PAGE_TITLE",configValue:g},theme:{defaultValue:"defaultTheme",environmentVariable:"JEST_HTML_REPORTER_THEME",configValue:m},sort:{defaultValue:null,environmentVariable:"JEST_HTML_REPORTER_SORT",configValue:p},statusIgnoreFilter:{defaultValue:null,environmentVariable:"JEST_HTML_REPORTER_STATUS_FILTER",configValue:T},styleOverridePath:{defaultValue:null,environmentVariable:"JEST_HTML_REPORTER_STYLE_OVERRIDE_PATH",configValue:S},useCssFile:{defaultValue:!1,environmentVariable:"JEST_HTML_REPORTER_USE_CSS_FILE",configValue:E}};try{const e=r.default.readFileSync(c.default.join(process.cwd(),"jesthtmlreporter.config.json"),"utf8");if(e){const t=JSON.parse(e);for(const e of Object.keys(t))this.config[e]&&(this.config[e].configValue=t[e]);return this.config}}catch(e){}try{const e=r.default.readFileSync(c.default.join(process.cwd(),"package.json"),"utf8");if(e){const t=JSON.parse(e)["jest-html-reporter"];for(const e of Object.keys(t))this.config[e]&&(this.config[e].configValue=t[e]);return this.config}}catch(e){}}getConfigValue(e){const t=this.config[e];if(t)return process.env[t.environmentVariable]?process.env[t.environmentVariable]:t.configValue||t.defaultValue}async appendToFile(e,t){let s=t;const a=await r.default.readFileSync(e,"utf8");if(a){const i=/<body>(.*?)<\/body>/gm.exec(t);if(i){const[e]=i;s=e}let l=a;const n=/<\/body>/gm.exec(a),o=n?n.index:0;return l=[a.slice(0,o),s,a.slice(o)].join(""),r.default.writeFileSync(e,l)}return r.default.appendFileSync(e,s)}replaceRootDirInPath(e,t){return/^<rootDir>/.test(t)?c.default.resolve(e,c.default.normalize("./"+t.substr("<rootDir>".length))):t}logMessage(e="default",t){const s={default:"%s",success:"%s",error:"%s"},a=s[e]?s[e]:s.default,i=`jest-html-reporter >> ${t}`;return void 0===process.env.JEST_WORKER_ID&&console.log(a,i),{logColor:a,logMsg:i}}}const R=e=>new E(e).generate();module.exports=function(e,t){const s=[];if(Object.prototype.hasOwnProperty.call(e,"testResults")){const s=e;return R({testData:s,options:t}),s}this.onTestResult=(e,t)=>{t.console&&s.push({filePath:t.testFilePath,logs:t.console})},this.onRunComplete=(a,i)=>R({testData:i,options:t,jestConfig:e,consoleLogs:s})};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jest-html-reporter",
3
- "version": "3.3.0",
3
+ "version": "3.4.1",
4
4
  "description": "Jest test results processor for generating a summary in HTML",
5
5
  "main": "dist/index.js",
6
6
  "unpkg": "dist/index.js",
@@ -42,7 +42,7 @@
42
42
  "@babel/preset-typescript": "^7.8.3",
43
43
  "@jest/console": "^25.1.0",
44
44
  "@jest/test-result": "^25.1.0",
45
- "@jest/types": "^25.1.0",
45
+ "@jest/types": "^26.0.23",
46
46
  "@types/dateformat": "^3.0.1",
47
47
  "@types/jest": "^25.1.4",
48
48
  "@types/mkdirp": "^1.0.0",
@@ -55,16 +55,16 @@
55
55
  "xmlbuilder": "15.0.0"
56
56
  },
57
57
  "peerDependencies": {
58
- "jest": "19.x - 26.x"
58
+ "jest": "19.x - 27.x"
59
59
  },
60
60
  "devDependencies": {
61
+ "@rollup/plugin-babel": "^5.3.0",
61
62
  "@rollup/plugin-node-resolve": "^7.1.1",
62
- "babel-jest": "^25.2.4",
63
- "jest": "^25.1.0",
64
- "rollup": "1.20.0",
65
- "rollup-plugin-babel": "^4.4.0",
66
- "rollup-plugin-terser": "^5.3.0",
67
- "ts-jest": "^25.3.0",
63
+ "babel-jest": "^27.0.1",
64
+ "jest": "^27.0.1",
65
+ "rollup": "2.47.0",
66
+ "rollup-plugin-terser": "7.0.2",
67
+ "ts-jest": "^27.0.1",
68
68
  "tslint": "^5.12.0",
69
69
  "tslint-config-prettier": "^1.18.0",
70
70
  "typescript": "^3.7.2"