reorder for readability and comment

This commit is contained in:
James 2020-02-15 13:23:44 +00:00
parent 0ce38258dc
commit ce7c917874

View File

@ -5,6 +5,7 @@ use \JHodges\GiteaBot\Client;
/* creates a new issue for each failed test /* creates a new issue for each failed test
* if it already exists then report is added as a comment * if it already exists then report is added as a comment
* if exact error exists as body or comment then just link to it instead of posting again
* if it passes then the issue is closed * if it passes then the issue is closed
*/ */
@ -26,6 +27,36 @@ final class PostFailedTests{
$this->process($this->xml); $this->process($this->xml);
} }
private function process($item){
if(isset($item->testcase)){
foreach($item->testcase as $testcase) {
$att=$testcase->attributes();
$name=$testcase->attributes()->class[0].'::'.$testcase->attributes()->name[0];
$fail=false;
foreach($testcase as $k=>$v){
$this->fail($name,$att,$k,$v);
$fail=true;
}
if(!$fail){
$this->success($name,$att);
}
}
}
if(isset($item->testsuite)){
foreach($item->testsuite as $testsuite) {
$this->process($testsuite);
}
}
}
private function success($name,$att){
$issue=$this->repo->getIssues(['q' => $name])[0]??null;
if($issue){
$issue->state='closed';
$issue->save();
}
}
private function fail($name,$att,$error,$message){ private function fail($name,$att,$error,$message){
//stick the error type into the atts array //stick the error type into the atts array
@ -73,7 +104,6 @@ final class PostFailedTests{
'body'=>$issueBody 'body'=>$issueBody
]); ]);
} }
} }
private function doesMessageMatch($body,$message,$att){ private function doesMessageMatch($body,$message,$att){
@ -104,35 +134,4 @@ final class PostFailedTests{
return true; return true;
} }
private function success($name,$att){
$issue=$this->repo->getIssues(['q' => $name])[0]??null;
if($issue){
$issue->state='closed';
$issue->save();
}
}
private function process($item){
if(isset($item->testcase)){
foreach($item->testcase as $testcase) {
$att=$testcase->attributes();
$name=$testcase->attributes()->class[0].'::'.$testcase->attributes()->name[0];
$fail=false;
foreach($testcase as $k=>$v){
$this->fail($name,$att,$k,$v);
$fail=true;
}
if(!$fail){
$this->success($name,$att);
}
}
}
if(isset($item->testsuite)){
foreach($item->testsuite as $testsuite) {
$this->process($testsuite);
}
}
}
} }