+ [misc] Add unit tests for gitlabModel::apiCreateTag() method
🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -509,4 +509,21 @@ class gitlabTest
|
||||
if(dao::isError()) return dao::getError();
|
||||
return $result ? $this->gitlab->loadModel($issue->objectType)->getByID($issue->objectID) : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test apiCreateTag method.
|
||||
*
|
||||
* @param int $gitlabID
|
||||
* @param int $projectID
|
||||
* @param object $tag
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
public function apiCreateTagTest(int $gitlabID, int $projectID, object $tag): mixed
|
||||
{
|
||||
$result = $this->gitlab->apiCreateTag($gitlabID, $projectID, $tag);
|
||||
if(dao::isError()) return dao::getError();
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
Executable
+72
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
/**
|
||||
|
||||
title=测试 gitlabModel::apiCreateTag();
|
||||
timeout=0
|
||||
cid=0
|
||||
|
||||
- 执行$result @return empty
|
||||
- 执行gitlabTest模块的apiCreateTagTest方法,参数是1, 1, $emptyTagName @0
|
||||
- 执行gitlabTest模块的apiCreateTagTest方法,参数是1, 1, $emptyRef @0
|
||||
- 执行$result2 @return empty
|
||||
- 执行$result3 @return empty
|
||||
|
||||
*/
|
||||
|
||||
// 1. 导入依赖(路径固定,不可修改)
|
||||
include dirname(__FILE__, 5) . '/test/lib/init.php';
|
||||
include dirname(__FILE__, 2) . '/lib/gitlab.unittest.class.php';
|
||||
|
||||
// 2. zendata数据准备(根据需要配置)
|
||||
$table = zenData('pipeline');
|
||||
$table->type->range('gitlab{3}');
|
||||
$table->name->range('Test GitLab{3}');
|
||||
$table->url->range('https://gitlab.example.com{3}');
|
||||
$table->token->range('test-token{3}');
|
||||
$table->gen(3);
|
||||
|
||||
// 3. 用户登录(选择合适角色)
|
||||
su('admin');
|
||||
|
||||
// 4. 创建测试实例(变量名与模块名一致)
|
||||
$gitlabTest = new gitlabTest();
|
||||
|
||||
// 5. 强制要求:必须包含至少5个测试步骤
|
||||
// 测试步骤1:使用有效参数创建标签(由于没有真实GitLab连接,期望返回null)
|
||||
$validTag = new stdClass();
|
||||
$validTag->tag_name = 'v1.0.0';
|
||||
$validTag->ref = 'main';
|
||||
$validTag->message = 'Release version 1.0.0';
|
||||
$result = $gitlabTest->apiCreateTagTest(1, 1, $validTag);
|
||||
if(empty($result)) $result = 'return empty';
|
||||
r($result) && p() && e('return empty');
|
||||
|
||||
// 测试步骤2:使用空的tag_name参数
|
||||
$emptyTagName = new stdClass();
|
||||
$emptyTagName->tag_name = '';
|
||||
$emptyTagName->ref = 'main';
|
||||
r($gitlabTest->apiCreateTagTest(1, 1, $emptyTagName)) && p() && e('0');
|
||||
|
||||
// 测试步骤3:使用空的ref参数
|
||||
$emptyRef = new stdClass();
|
||||
$emptyRef->tag_name = 'v1.0.1';
|
||||
$emptyRef->ref = '';
|
||||
r($gitlabTest->apiCreateTagTest(1, 1, $emptyRef)) && p() && e('0');
|
||||
|
||||
// 测试步骤4:使用无效的gitlabID参数(getApiRoot返回空字符串)
|
||||
$validTag2 = new stdClass();
|
||||
$validTag2->tag_name = 'v1.0.2';
|
||||
$validTag2->ref = 'main';
|
||||
$result2 = $gitlabTest->apiCreateTagTest(999, 1, $validTag2);
|
||||
if(empty($result2)) $result2 = 'return empty';
|
||||
r($result2) && p() && e('return empty');
|
||||
|
||||
// 测试步骤5:使用无效的projectID参数(API调用会失败)
|
||||
$validTag3 = new stdClass();
|
||||
$validTag3->tag_name = 'v1.0.3';
|
||||
$validTag3->ref = 'main';
|
||||
$result3 = $gitlabTest->apiCreateTagTest(1, 999, $validTag3);
|
||||
if(empty($result3)) $result3 = 'return empty';
|
||||
r($result3) && p() && e('return empty');
|
||||
Reference in New Issue
Block a user