From 992e503c1ca4c655da9e871f6dc5398b4bec30c5 Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 11 Nov 2025 15:09:39 +0800 Subject: [PATCH] + [misc] Add unit test script for repoZen::prepareCreate() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- module/repo/test/zen/preparecreate.php | 71 ++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 module/repo/test/zen/preparecreate.php diff --git a/module/repo/test/zen/preparecreate.php b/module/repo/test/zen/preparecreate.php new file mode 100755 index 0000000000..fce7136d6c --- /dev/null +++ b/module/repo/test/zen/preparecreate.php @@ -0,0 +1,71 @@ +#!/usr/bin/env php + 'Git', + 'client' => 'git', + 'name' => 'test-repo', + 'path' => '/test/path', + 'product' => '1', + 'projects' => '1', + 'acl' => array('acl' => 'open') +); + +$containerFormData = array( + 'SCM' => 'Git', + 'client' => '', + 'name' => 'container-repo', + 'path' => '/test/path' +); + +$gitlabFormData = array( + 'SCM' => 'Gitlab', + 'path' => '/test/gitlab', + 'serviceProject' => '123', + 'name' => 'gitlab-repo' +); + +// 测试步骤1: 正常Git仓库创建 +r($result1 = $repoZenTest->prepareCreateTest($normalFormData, false, 'normal')) && p('acl') && e('{"acl":"open"}'); + +// 测试步骤2: 容器环境下Git仓库 +r($result2 = $repoZenTest->prepareCreateTest($containerFormData, false, 'container_git')) && p('acl') && e('{"acl":"open"}'); + +// 测试步骤3: Gitlab仓库特殊字段处理 - 验证extra字段 +r($result3 = $repoZenTest->prepareCreateTest($gitlabFormData, false, 'gitlab')) && p('extra') && e('123'); + +// 测试步骤4: ACL配置验证失败 +r($result4 = $repoZenTest->prepareCreateTest($normalFormData, false, 'acl_error')) && p() && e('0'); + +// 测试步骤5: 流水线服务器重复项目检查 +r($result5 = $repoZenTest->prepareCreateTest($normalFormData, true, 'duplicate_project')) && p() && e('0'); + +// 测试步骤6: 正常非流水线服务器场景 - 验证返回对象类型 +r(is_object($repoZenTest->prepareCreateTest($normalFormData, false, 'normal'))) && p() && e('1'); + +// 测试步骤7: 验证ACL字段格式包含open +r(strpos(json_encode($repoZenTest->prepareCreateTest($normalFormData, false, 'normal')), 'open') !== false) && p() && e('1'); \ No newline at end of file