@ivamuno/cypress-api-coverage
Version:
Cypress plugin to generate API coverage reports
2 lines • 2.93 kB
JavaScript
(()=>{"use strict";var e={};class t{static isString(e){return"string"==typeof e}static toRegexSource(e){return this.isString(e)?e:e.source}static toRegex(e){return this.isString(e)?new RegExp(e):e}static dirname(e){const t=this.removeTrailingSlash(e),s=this.fileNameIdx(t),r=t.substring(0,s);return this.removeTrailingSlash(r)}static normalizeName(e,t){var s;const r=this.fileNameIdx(e),a=this.removeLeadingSlash(e.substring(r)),i=a.lastIndexOf(".");let n,o=a;return i>=0&&(n=null!==(s=null==t?void 0:t.ext)&&void 0!==s?s:a.substring(i),o=a.substring(0,i)),`${o}${null!=n?n:".har"}`}static escapeCharacters(e,t="^[]{}()\\\\.$*+?|"){let s=!1;const r=t.length;for(let a=0;a<r;++a)if(-1!==e.indexOf(t.charAt(a))){s=!0;break}if(!s)return e;let a="";for(let s=0;s<e.length;++s)-1!==t.indexOf(e.charAt(s))&&(a+="\\"),a+=e.charAt(s);return a}static fileNameIdx(e){return e.indexOf("\\")>=0?e.lastIndexOf("\\"):e.lastIndexOf("/")}static removeLeadingSlash(e){return e.replace(/^\/|^\\/,"")}static removeTrailingSlash(e){return e.replace(/\/+$|\\+$/,"")}}let s=[];Cypress.Commands.add("recordApiRequests",(e=>{var s,r;return cy.task("recordHar",Object.assign(Object.assign({content:!1,includeBlobs:!1,rootDir:t.dirname(Cypress.spec.absolute)},e),{excludePaths:null===(s=null==e?void 0:e.excludePaths)||void 0===s?void 0:s.map((e=>t.toRegexSource(e))),includeHosts:null===(r=null==e?void 0:e.includeHosts)||void 0===r?void 0:r.map((e=>t.toRegexSource(e)))}))})),Cypress.Commands.add("saveApiRequests",(e=>{var r,a,i;const n=Cypress.spec.name,o=null!==(r=Cypress.env("hars_folders"))&&void 0!==r?r:"./",l={log:{version:"1.2",pages:[],creator:{name:"@ivamuno/cypress-api-coverage",version:"1.0.0",comment:"https://github.com/ivamuno/cypress-api-coverage#readme"},entries:s}};return s=[],cy.task("saveHar",Object.assign(Object.assign({outDir:o},e),{fileName:t.normalizeName(null!==(a=null==e?void 0:e.fileName)&&void 0!==a?a:n,(null==e?void 0:e.fileName)?void 0:{ext:".har"})})),cy.task("saveApiRequestsTask",Object.assign(Object.assign({log:l,outDir:o},e),{fileName:t.normalizeName(null!==(i=null==e?void 0:e.fileName)&&void 0!==i?i:n,(null==e?void 0:e.fileName)?void 0:{ext:".api.har"})}))})),Cypress.Commands.overwrite("request",((e,...t)=>{let r={};if("object"==typeof t[0])r={url:t[0].url,method:t[0].method};else{const e=t;2===e.length?r={url:e[0],method:"GET"}:3===e.length&&(r={url:e[1],method:e[0]})}const a=Date.now();return e(...t).then((e=>{const t=Date.now();return s.push({startedDateTime:a,time:t-a,request:{method:r.method||"GET",url:r.url},response:{status:e.status,statusText:e.statusText}}),e}))})),Cypress.Commands.add("computeCoverage",(e=>{var t;const s=null!==(t=Cypress.env("hars_folders"))&&void 0!==t?t:"./";return cy.task("computeCoverageTask",Object.assign({outDir:s},e))}));var r=exports;for(var a in e)r[a]=e[a];e.__esModule&&Object.defineProperty(r,"__esModule",{value:!0})})();
//# sourceMappingURL=commands.js.map