UNPKG

6.89 kBJavaScriptView Raw
1!function(){var e=require("rally");queryUtils=e.util.query,refUtils=e.util.ref,logger=require("./Logger.js"),rallylog=require("./RallyLog.js");var t;if(void 0!=process.env.apiKey){if(t=process.env.apiKey,rallylog.info("apikey is '"+t+"'"),void 0!=process.env.method)s=process.env.method;else var s="Automated";process.env.project,process.env.rallyworkspace;var r,i=process.env.rallyProxy;void 0!=process.env.type?"Acceptance"!=(r=process.env.type.trim())&&"Functional"!=r&&"Performance"!=r&&"Regression"!=r&&"Usability"!=r&&"User Interface"!=r&&(console.log('Typo in the .env file type= : setting Type to default value "Acceptance"'),rallylog.info("Typo in the .env file type= '"+r+'\' setting Type to default value "Acceptance"'),r="Acceptance"):r="Acceptance",restApi=e({apiKey:t,apiVersion:"v2.0",server:"https://rally1.rallydev.com",requestOptions:{headers:{"X-RallyIntegrationName":"Rally Result Logger for ProUI","X-RallyIntegrationVendor":"GE Digital","X-RallyIntegrationVersion":"1.0"},proxy:i}});module.exports=new function(){return{getObjectRef:function(e,t,s,r,i){if(""==t)console.log("No workspace/project provided - using default"),logger.info("No workspace/project provided - using default"),i("");else{var o=queryUtils.where("name","=",t);restApi.query({type:e,start:1,pageSize:200,limit:1/0,fetch:["FormattedID","Name","TestCases","ObjectID","LastResult","RevisionHistory","Steps"],query:o,scope:{workspace:r,project:s}},function(e,t){if(e)throw console.log(e),e;var s=!1,r=0,o="",a=JSON.parse(JSON.stringify(t.Results));if(a.length>0){void 0!=a[0].LastResult?null==a[0].LastResult?s=!1:(s=!0,r=(r=(r=a[0].LastResult._ref).split("/"))[7]):s=!1,void 0!=a[0].RevisionHistory&&(o=a[0].RevisionHistory._ref);var c=a[0]._ref,n=t.Results[0].ObjectID,p=refUtils.getRelative(c);i({ref:p,id:n,last_run:s,test_case_result_id:r,revision_history_ref:o})}else i("NOT_FOUND")})}},UserPermissions:function(e,t,s){var r="",i="";restApi.query({type:"userpermission",start:1,pageSize:200,limit:1/0,fetch:["Workspace","Name","Project","ObjectID","User"],scope:{}},function(o,a){if(o)console.error(o),s(o);else{var c=JSON.parse(JSON.stringify(a.Results));if(c.length>0){for(var n=c[0].User._ref,p=(refUtils.getRelative(n),c[0].User.ObjectID),l=0;l<c.length;l++)if("workspace"==e){if(c[l].Workspace.Name==t){i=c[l].Workspace._ref,i=refUtils.getRelative(i);break}}else if("project"==e&&void 0!=c[l].Project&&c[l].Project.Name==t){r=c[l].Project._ref,r=refUtils.getRelative(r);break}s(l==c.length&&""!=t?"NOT_FOUND":{owner_id:p,wsRef:i,projRef:r})}else s("NOT_FOUND")}})},getUSTSRef:function(e,t,s,r,i){if(""==e)i({id:""});else{var o=queryUtils.where("FormattedID","=",e);restApi.query({type:r,start:1,pageSize:200,limit:1/0,fetch:["Name","ObjectID"],query:o,scope:{workspace:t,project:s}},function(e,t){if(e)throw console.log(e),e;var s=JSON.parse(JSON.stringify(t.Results));if(s.length>0){var r=s[0]._ref,o=refUtils.getRelative(r),a=s[0].ObjectID;i({ref:o,id:a})}else i({ref:o="",id:a=""})})}},createTestPlan:function(e,t,s,r){restApi.create({type:"testfolder",data:{Name:e},fetch:["FormattedID","ObjectID"],scope:{workspace:t,project:s},requestOptions:{}},function(e,t){if(e)throw console.log(e),e;refUtils.getRelative(JSON.parse(JSON.stringify(t.Object)));var s=t.Object.ObjectID;r({id:s})})},createTestcase:function(e,t,i,o){void 0==e.kObj.duration&&(e.kObj.duration=0),null==e.tcObj.glb_folder_id&&(e.tcObj.glb_folder_id=0),""==e.tcObj.test_case_description?(e.tcObj.stepsArray=e.tcObj.stepsArray.toString().split('"').join(""),e.tcObj.test_case_description="N/A<br>"+e.tcObj.stepsArray):(e.tcObj.stepsArray=e.tcObj.stepsArray.toString().split('"').join(""),e.tcObj.test_case_description=e.tcObj.test_case_description+"<br>"+e.tcObj.stepsArray),restApi.create({type:"testcase",data:{Name:e.tcObj.test_case_name,Description:e.tcObj.test_case_description,Method:s,TestFolder:e.tcObj.glb_folder_id,WorkProduct:e.tcObj.User_Story,Owner:e.tcObj.owner,Notes:e.error,Type:r},fetch:["FormattedID","ObjectID"],scope:{workspace:t,project:i}},function(t,s){t?(console.log("error: "+t),o({id:""})):(refUtils.getRelative(JSON.parse(JSON.stringify(s.Object))),e.tcObj.glb_test_case_id=s.Object.ObjectID,o({id:e.tcObj.glb_test_case_id}))})},createTestcaseResult:function(e,t,s,r){void 0==e.resp.duration||"undefined"==e.resp.duration||null==e.resp.duration||NaN==e.resp.duration||"NaN"==e.resp.duration?e.resp.duration=0:e.resp.duration>9999999999&&(e.resp.duration=9999999999),"passed"==e.resp.status?e.resp.status="Pass":"failed"==e.resp.status?e.resp.status="Fail":"skipped"==e.resp.status&&(e.resp.status="Inconclusive",duration=0),restApi.create({type:"testcaseresult",data:{TestCase:e.tcObj.glb_test_case_id,Build:e.tcObj.build_num,Duration:e.resp.duration,Verdict:e.resp.status,Date:(new Date).toISOString(),TestSet:e.resp.id},fetch:["ObjectID"],scope:{workspace:t,project:s}},function(e,t){if(e)throw console.log(e),e;var s=t.Object.ObjectID;r({id:s})})},updateTestCaseResult:function(e,t,s,r){void 0==e.resp.duration&&(e.resp.duration=0),void 0!=e.resp.duration&&e.resp.duration>9999999999&&(e.resp.duration=9999999999),"passed"==e.resp.status?e.resp.status="Pass":"failed"==e.resp.status?e.resp.status="Fail":"skipped"==e.resp.status&&(e.resp.status="Inconclusive",e.resp.duration=0),restApi.update({ref:"/testcaseresult/"+e.tcObj.glb_test_result_id,data:{Build:e.tcObj.build_num,Duration:e.resp.duration,Verdict:e.resp.status,Date:(new Date).toISOString(),TestCase:e.tcObj.resp.ref,TestSet:e.resp.id},fetch:[],scope:{workspace:t,project:s},requestOptions:{}},function(e,t){e?console.log(e):r()})},updateTestCase:function(e,t,i,o){""==e.tcObj.test_case_description?(e.tcObj.stepsArray=e.tcObj.stepsArray.toString().split('"').join(""),e.tcObj.test_case_description="N/A<br>"+e.tcObj.stepsArray):(e.tcObj.stepsArray=e.tcObj.stepsArray.toString().split('"').join(""),e.tcObj.test_case_description=e.tcObj.test_case_description+"<br>"+e.tcObj.stepsArray),require("request-promise"),restApi.update({ref:e.tcObj.resp.ref,data:{WorkProduct:e.resp.id,Method:s,Owner:e.owner,Notes:e.error,Type:r,Description:e.tcObj.test_case_description},fetch:["FormattedID","Project"],scope:{workspace:t,project:i}},function(e,t){e?(console.log(e),o(e)):o()})},updateTestSet:function(e,s,r){var o,a=require("request-promise");""==s.id?(o={id:"",status:s.status,duration:s.duration,glb_test_case_id:s.glb_test_case_id,glb_folder_id:e.glb_folder_id,json:s.json,i:s.i,j:s.j,k:k},r(o)):(o={id:s.id,status:s.status,duration:s.duration,glb_test_case_id:s.glb_test_case_id,glb_folder_id:e.glb_folder_id,json:s.json,i:s.i,j:s.j,k:k},a({method:"POST",url:"https://rally1.rallydev.com/slm/webservice/v2.x/TestSet/"+s.id+"/TestCases/add?fetch=true",headers:{zsessionid:t},proxy:i,body:'{"CollectionItems":[{"_ref":"/testcase/'+e.glb_test_case_id+'"}]}'}).then(function(e,t){r(o)}))}}}}else rallylog.info("no apiKey defined")}();
\No newline at end of file