* [misc] Fix unit tests for giteaModel::apiGetMergeRequests() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-29 16:41:39 +08:00
co-authored by Claude
parent a25ede65fd
commit d23ea658a2
3 changed files with 26 additions and 30 deletions
+6 -2
View File
@@ -404,11 +404,15 @@ class giteaModel extends model
*/
public function apiGetMergeRequests(int $giteaID, string $project): array
{
$apiRoot = $this->getApiRoot($giteaID, false);
$apiRoot = $this->getApiRoot($giteaID, false);
if(!$apiRoot) return array();
$apiPath = "/repos/{$project}/pulls";
$url = sprintf($apiRoot, $apiPath);
$mrList = json_decode(common::http($url));
if(!is_array($mrList)) return array();
foreach($mrList as $mr)
{
$mr->web_url = $mr->url;
@@ -422,7 +426,7 @@ class giteaModel extends model
$mr->source_branch = $mr->head->ref;
$mr->source_project_id = $project;
$mr->target_project_id = $project;
$mr->has_conflicts = empty($diff) ? true : false;
$mr->has_conflicts = !$mr->mergeable;
$mr->is_draft = strpos($mr->title, 'Draft:') === 0;
}
@@ -66,15 +66,10 @@ class giteaTest
*/
public function apiGetMergeRequestsTest(int $giteaID, string $project)
{
try {
$result = $this->gitea->apiGetMergeRequests($giteaID, $project);
if(dao::isError()) return dao::getError();
return $result;
} catch (TypeError $e) {
return 'TypeError: ' . $e->getMessage();
} catch (Exception $e) {
return 'Error: ' . $e->getMessage();
}
$result = $this->gitea->apiGetMergeRequests($giteaID, $project);
if(dao::isError()) return dao::getError();
return count($result);
}
/**
+16 -19
View File
@@ -7,36 +7,33 @@ title=测试 giteaModel::apiGetMergeRequests();
timeout=0
cid=0
- 执行giteaTest模块的apiGetMergeRequestsTest方法,参数是1, 'test/project' @*foreach() argument must be of type array|object, null given*TypeError: giteaModel::apiGetMergeRequests(): Return value must be of type array, null returned*
- 执行giteaTest模块的apiGetMergeRequestsTest方法,参数是999, 'test/project' @*foreach() argument must be of type array|object, null given*TypeError: giteaModel::apiGetMergeRequests(): Return value must be of type array, null returned*
- 执行giteaTest模块的apiGetMergeRequestsTest方法,参数是0, 'test/project' @*foreach() argument must be of type array|object, null given*TypeError: giteaModel::apiGetMergeRequests(): Return value must be of type array, null returned*
- 执行giteaTest模块的apiGetMergeRequestsTest方法,参数是1, '' @*foreach() argument must be of type array|object, null given*TypeError: giteaModel::apiGetMergeRequests(): Return value must be of type array, null returned*
- 执行giteaTest模块的apiGetMergeRequestsTest方法,参数是1, 'test/project@special' @*foreach() argument must be of type array|object, null given*TypeError: giteaModel::apiGetMergeRequests(): Return value must be of type array, null returned*
- 执行giteaTest模块的apiGetMergeRequestsTest方法,参数是1, 'test/project' @0
- 执行giteaTest模块的apiGetMergeRequestsTest方法,参数是999, 'test/project' @0
- 执行giteaTest模块的apiGetMergeRequestsTest方法,参数是0, 'test/project' @0
- 执行giteaTest模块的apiGetMergeRequestsTest方法,参数是1, '' @0
- 执行giteaTest模块的apiGetMergeRequestsTest方法,参数是1, 'test/special-project' @0
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/gitea.unittest.class.php';
$table = zenData('repo');
$table = zenData('pipeline');
$table->id->range('1-10');
$table->name->range('gitea-repo{1-5}, test-repo{1-5}');
$table->SCM->range('Gitea{10}');
$table->serviceHost->range('http://gitea.test.com{10}');
$table->type->range('gitea{10}');
$table->name->range('gitea-server{1-5}, test-server{1-5}');
$table->url->range('http://gitea.test.com{10}');
$table->account->range('admin{10}');
$table->password->range('token123{10}');
$table->token->range('token123{10}');
$table->deleted->range('0{10}');
$table->gen(10);
su('admin');
$giteaTest = new giteaTest();
r($giteaTest->apiGetMergeRequestsTest(1, 'test/project')) && p() && e("*foreach() argument must be of type array|object, null given*TypeError: giteaModel::apiGetMergeRequests(): Return value must be of type array, null returned*");
r($giteaTest->apiGetMergeRequestsTest(999, 'test/project')) && p() && e("*foreach() argument must be of type array|object, null given*TypeError: giteaModel::apiGetMergeRequests(): Return value must be of type array, null returned*");
r($giteaTest->apiGetMergeRequestsTest(0, 'test/project')) && p() && e("*foreach() argument must be of type array|object, null given*TypeError: giteaModel::apiGetMergeRequests(): Return value must be of type array, null returned*");
r($giteaTest->apiGetMergeRequestsTest(1, '')) && p() && e("*foreach() argument must be of type array|object, null given*TypeError: giteaModel::apiGetMergeRequests(): Return value must be of type array, null returned*");
r($giteaTest->apiGetMergeRequestsTest(1, 'test/project@special')) && p() && e("*foreach() argument must be of type array|object, null given*TypeError: giteaModel::apiGetMergeRequests(): Return value must be of type array, null returned*");
r($giteaTest->apiGetMergeRequestsTest(1, 'test/project')) && p() && e('0');
r($giteaTest->apiGetMergeRequestsTest(999, 'test/project')) && p() && e('0');
r($giteaTest->apiGetMergeRequestsTest(0, 'test/project')) && p() && e('0');
r($giteaTest->apiGetMergeRequestsTest(1, '')) && p() && e('0');
r($giteaTest->apiGetMergeRequestsTest(1, 'test/special-project')) && p() && e('0');