UNPKG

3.49 kBJavaScriptView Raw
1module.exports=function(){var e=require("cucumber"),n=(require("./Logger.js"),require("bluebird"),e.Listener.JsonFormatter()),t="",r="",s=require("fs"),o="./Reports/json_report";s.existsSync(o)||s.mkdirSync(o);var i=!1,a=0;this.registerListener(n),n.log=function(e,n){for(var s=function(e,n){for(var t=0,r=0;r<e.length;r++)if(e[r]==n&&(t++,a=!0),r==e.length-1)return t},o=JSON.parse(e),a=!1,l=0;l<o.length;l++){o[l].name;for(var g=[],m=0;m<o[l].elements.length;m++){var f=o[l].elements[m].name,c="",h="",v="";void 0!=process.env.user_story&&""!=process.env.user_story&&(c=(c=process.env.user_story).match(/US[0-9]+/g));var p=f.split(":");if("false"==process.env.overwrite_US||void 0==process.env.overwrite_US?2==p.length?(p[0].match(/US[0-9]+/g)?c=(c=p[0]).match(/US[0-9]+/g):h=p[0],v=p[1]):3==p.length?(p[0].match(/US[0-9]+/)?(c=p[0],h=p[1]):(h=p[0],c=p[1]),c=c.match(/US[0-9]+/g),v=p[2]):v=p[0]:2==p.length?(p[0].match(/US[0-9]+/g)||(h=p[0]),v=p[1]):3==p.length?(h=p[0].match(/US[0-9]+/)?p[1]:p[0],v=p[2]):v=p[0],""!=c)var u=c.join(",");if(""!=h&&(void 0==u&&void 0!=h?u=h:u+=":"+h),p.length>1&&("false"==process.env.overwrite_US||void 0==process.env.overwrite_US)?o[l].elements[m].name=u+":"+v:o[l].elements[m].name=""!=u&&void 0!=u?u+":"+v:p[0],null!=c&&c.length>1){_=o[l].elements[m].name;o[l].elements[m].name=p[0].replace(/(,(\s*)?US[0-9]+)+/g,"")+":"+p[1]+"_US_1",f=o[l].elements[m].name;for(var S=1;S<c.length;S++){var d=JSON.parse(JSON.stringify(o[l].elements[m])),y=d.name.split(":")[0].replace(/US[0-9]+/g,c[S]);d.name=y+":"+d.name.split(":")[1].substring(0,d.name.split(":")[1].length-2)+"_"+(S+1),o[l].elements.push(d)}}for(var U=0;U<o[l].elements[m].steps.length;U++)if(void 0!=o[l].elements[m].steps[U].name){var _=o[l].elements[m].steps[U].name,b=new RegExp('".+?"').exec(_);if(void 0!=b){if(a=!0,g.length>0){var w=s(g,b[0]);w>0?(!0,o[l].elements[m].name=f+" "+b[0]+" "+w,o[l].elements[m].name=o[l].elements[m].name.split('"').join("")):(o[l].elements[m].name=f+" "+b[0],o[l].elements[m].name=o[l].elements[m].name.split('"').join(""))}g.push(b[0])}else if(U==o[l].elements[m].steps.length-2){a=!1;break}}else if(U==o[l].elements[m].steps.length-2){a=!1;break}m==o[l].elements.length-1&&l==o.length-1&&(t=JSON.stringify(o,null,"\t"),r=e)}if(i)break}},this.After(function(e,n){console.log("after scenario"),e.isFailed()?(Logger.info("Results: Failed"),browser.takeScreenshot().then(function(t){a+=1;var r=new Buffer(t,"base64").toString("binary");s.writeFile("Reports/image"+a+".png",r,"binary",function(t){e.attach(r,"image/png"),console.log("Attached"),n()})})):(Logger.info("Results: Passed"),n())}),this.registerHandler("BeforeScenario",function(e,n){var t=e.getPayloadItem("scenario");Logger.info("|--------------------------------------------------------|"),Logger.info("Test "+t.getName()+" has started"),Logger.info("|--------------------------------------------------------|\r\n"),n()}),this.registerHandler("AfterScenario",function(e,n){var t=e.getPayloadItem("scenario");Logger.info("|--------------------------------------------------------|"),Logger.info("Test "+t.getName()+" has ended"),Logger.info("|--------------------------------------------------------|\r\n\r\n"),n()}),this.registerHandler("AfterFeatures",function(e,n){if(""==t)for(var r=new Date;new Date-r<1500;);s.writeFile("Reports/json_report/rally.json",t,function(e){if(e)console.log(e);else{require("./Rally.js").RallyWebAPI("../../../Reports/json_report/rally.json",function(){i=!0,n()})}})})};
\No newline at end of file