+ [misc] Add unit tests for apiZen::generateLibsDropMenu() method

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-11-12 08:25:30 +08:00
co-authored by Claude
parent d974ee31a1
commit 848ec28091
4 changed files with 740 additions and 0 deletions
+53
View File
@@ -0,0 +1,53 @@
#!/usr/bin/env php
<?php
/**
title=测试 apiZen::generateLibsDropMenu();
timeout=0
cid=0
- 执行apiTest模块的generateLibsDropMenuTest方法,参数是$lib2, 0 属性text @正常产品2
- 执行apiTest模块的generateLibsDropMenuTest方法,参数是$lib6, 0 属性text @正常产品1
- 执行apiTest模块的generateLibsDropMenuTest方法,参数是$lib8, 0 属性text @项目集1
- 执行apiTest模块的generateLibsDropMenuTest方法,参数是$lib1, 0 属性text @独立接口
- 执行apiTest模块的generateLibsDropMenuTest方法,参数是$lib6, 1 属性link @generatelibsdropmenu.php?m=api&f=ajaxGetDropMenu&objectType=product&objectID=1&libID=6&version=1
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/api.unittest.class.php';
zenData('doclib')->loadYaml('generatelibsdropmenu/doclib', false, 2)->gen(10);
zenData('product')->loadYaml('generatelibsdropmenu/product', false, 2)->gen(5);
zenData('project')->loadYaml('generatelibsdropmenu/project', false, 2)->gen(5);
su('admin');
$apiTest = new apiTest();
$lib1 = new stdClass();
$lib1->id = 1;
$lib1->product = 0;
$lib1->project = 0;
$lib6 = new stdClass();
$lib6->id = 6;
$lib6->product = 1;
$lib6->project = 0;
$lib8 = new stdClass();
$lib8->id = 8;
$lib8->product = 0;
$lib8->project = 1;
$lib2 = new stdClass();
$lib2->id = 2;
$lib2->product = 2;
$lib2->project = 0;
r($apiTest->generateLibsDropMenuTest($lib2, 0)) && p('text') && e('正常产品2');
r($apiTest->generateLibsDropMenuTest($lib6, 0)) && p('text') && e('正常产品1');
r($apiTest->generateLibsDropMenuTest($lib8, 0)) && p('text') && e('项目集1');
r($apiTest->generateLibsDropMenuTest($lib1, 0)) && p('text') && e('独立接口');
r($apiTest->generateLibsDropMenuTest($lib6, 1)) && p('link') && e('generatelibsdropmenu.php?m=api&f=ajaxGetDropMenu&objectType=product&objectID=1&libID=6&version=1');
@@ -0,0 +1,152 @@
---
title: doclib测试数据
desc: 用于测试generateLibsDropMenu方法的doclib数据
fields:
- field: id
note: 文档库ID
range: 1-10
prefix: ""
postfix: ""
loop: 0
format: ""
- field: type
note: 文档库类型
range: api
prefix: ""
postfix: ""
loop: 0
format: ""
- field: vision
note: 视图
range: rnd
prefix: ""
postfix: ""
loop: 0
format: ""
- field: parent
note: 父文档库ID
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: product
note: 关联产品ID
range: 0{5},1,2,0{3}
prefix: ""
postfix: ""
loop: 0
format: ""
- field: project
note: 关联项目ID
range: 0{7},1,2,0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: execution
note: 关联执行ID
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: name
note: 文档库名称
range: API文档库1,API文档库2,API文档库3,API文档库4,API文档库5,产品API库,产品API库2,项目API库,项目API库2,通用API库
prefix: ""
postfix: ""
loop: 0
format: ""
- field: baseUrl
note: 基础URL
range: '`http://localhost/api`'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: acl
note: 访问控制
range: open
prefix: ""
postfix: ""
loop: 0
format: ""
- field: groups
note: 授权分组
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: users
note: 授权用户
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: main
note: 是否主库
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: collector
note: 关注者
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: desc
note: 描述
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: order
note: 排序
range: 1-10
prefix: ""
postfix: ""
loop: 0
format: ""
- field: addedBy
note: 创建者
range: admin
prefix: ""
postfix: ""
loop: 0
format: ""
- field: addedDate
note: 创建日期
range: '`2023-01-01 00:00:00`'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: deleted
note: 是否删除
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: archived
note: 是否归档
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: orderBy
note: 排序方式
range: id_asc
prefix: ""
postfix: ""
loop: 0
format: ""
@@ -0,0 +1,152 @@
---
title: product测试数据
desc: 用于测试generateLibsDropMenu方法的product数据
fields:
- field: id
note: 产品ID
range: 1-5
prefix: ""
postfix: ""
loop: 0
format: ""
- field: program
note: 所属项目集
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: name
note: 产品名称
range: 测试产品1,测试产品2,测试产品3,测试产品4,测试产品5
prefix: ""
postfix: ""
loop: 0
format: ""
- field: code
note: 产品代号
range: PRD001,PRD002,PRD003,PRD004,PRD005
prefix: ""
postfix: ""
loop: 0
format: ""
- field: bind
note: 绑定
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: line
note: 产品线
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: type
note: 产品类型
range: normal
prefix: ""
postfix: ""
loop: 0
format: ""
- field: status
note: 状态
range: normal
prefix: ""
postfix: ""
loop: 0
format: ""
- field: subStatus
note: 子状态
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: desc
note: 描述
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: PO
note: 产品负责人
range: admin
prefix: ""
postfix: ""
loop: 0
format: ""
- field: QD
note: 测试负责人
range: admin
prefix: ""
postfix: ""
loop: 0
format: ""
- field: RD
note: 发布负责人
range: admin
prefix: ""
postfix: ""
loop: 0
format: ""
- field: acl
note: 访问控制
range: open
prefix: ""
postfix: ""
loop: 0
format: ""
- field: whitelist
note: 白名单
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: createdBy
note: 创建者
range: admin
prefix: ""
postfix: ""
loop: 0
format: ""
- field: createdDate
note: 创建日期
range: '`2023-01-01 00:00:00`'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: createdVersion
note: 创建版本
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: order
note: 排序
range: 1-5
prefix: ""
postfix: ""
loop: 0
format: ""
- field: vision
note: 视图
range: rnd
prefix: ""
postfix: ""
loop: 0
format: ""
- field: deleted
note: 是否删除
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
@@ -0,0 +1,383 @@
---
title: project测试数据
desc: 用于测试generateLibsDropMenu方法的project数据
fields:
- field: id
note: 项目ID
range: 1-5
prefix: ""
postfix: ""
loop: 0
format: ""
- field: project
note: 项目集ID
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: model
note: 项目模型
range: scrum
prefix: ""
postfix: ""
loop: 0
format: ""
- field: type
note: 项目类型
range: project
prefix: ""
postfix: ""
loop: 0
format: ""
- field: budget
note: 预算
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: budgetUnit
note: 预算单位
range: CNY
prefix: ""
postfix: ""
loop: 0
format: ""
- field: attribute
note: 属性
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: percent
note: 完成度
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: milestone
note: 里程碑
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: output
note: 输出
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: auth
note: 授权
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: parent
note: 父项目
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: path
note: 路径
range: 1,2,3,4,5
prefix: "`,"
postfix: ",`"
loop: 0
format: ""
- field: grade
note: 层级
range: 1
prefix: ""
postfix: ""
loop: 0
format: ""
- field: name
note: 项目名称
range: 测试项目1,测试项目2,测试项目3,测试项目4,测试项目5
prefix: ""
postfix: ""
loop: 0
format: ""
- field: code
note: 项目代号
range: PRJ001,PRJ002,PRJ003,PRJ004,PRJ005
prefix: ""
postfix: ""
loop: 0
format: ""
- field: mark
note: 标记
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: begin
note: 开始日期
range: '`2023-01-01`'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: end
note: 结束日期
range: '`2023-12-31`'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: realBegan
note: 实际开始
range: '`0000-00-00`'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: realEnd
note: 实际结束
range: '`0000-00-00`'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: status
note: 状态
range: wait
prefix: ""
postfix: ""
loop: 0
format: ""
- field: subStatus
note: 子状态
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: pri
note: 优先级
range: 1
prefix: ""
postfix: ""
loop: 0
format: ""
- field: desc
note: 描述
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: version
note: 版本
range: 1
prefix: ""
postfix: ""
loop: 0
format: ""
- field: parentVersion
note: 父版本
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: planDuration
note: 计划工期
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: realDuration
note: 实际工期
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: openedBy
note: 创建者
range: admin
prefix: ""
postfix: ""
loop: 0
format: ""
- field: openedDate
note: 创建日期
range: '`2023-01-01 00:00:00`'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: openedVersion
note: 创建版本
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: lastEditedBy
note: 最后编辑者
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: lastEditedDate
note: 最后编辑日期
range: '`0000-00-00 00:00:00`'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: closedBy
note: 关闭者
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: closedDate
note: 关闭日期
range: '`0000-00-00 00:00:00`'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: canceledBy
note: 取消者
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: canceledDate
note: 取消日期
range: '`0000-00-00 00:00:00`'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: suspendedDate
note: 暂停日期
range: '`0000-00-00`'
prefix: ""
postfix: ""
loop: 0
format: ""
- field: PO
note: 产品负责人
range: admin
prefix: ""
postfix: ""
loop: 0
format: ""
- field: PM
note: 项目经理
range: admin
prefix: ""
postfix: ""
loop: 0
format: ""
- field: QD
note: 测试负责人
range: admin
prefix: ""
postfix: ""
loop: 0
format: ""
- field: RD
note: 发布负责人
range: admin
prefix: ""
postfix: ""
loop: 0
format: ""
- field: team
note: 团队
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: acl
note: 访问控制
range: open
prefix: ""
postfix: ""
loop: 0
format: ""
- field: whitelist
note: 白名单
range: ""
prefix: ""
postfix: ""
loop: 0
format: ""
- field: order
note: 排序
range: 1-5
prefix: ""
postfix: ""
loop: 0
format: ""
- field: vision
note: 视图
range: rnd
prefix: ""
postfix: ""
loop: 0
format: ""
- field: displayCards
note: 显示卡片
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: fluidBoard
note: 流式看板
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""
- field: colWidth
note: 列宽
range: 264
prefix: ""
postfix: ""
loop: 0
format: ""
- field: minColWidth
note: 最小列宽
range: 200
prefix: ""
postfix: ""
loop: 0
format: ""
- field: maxColWidth
note: 最大列宽
range: 384
prefix: ""
postfix: ""
loop: 0
format: ""
- field: deleted
note: 是否删除
range: 0
prefix: ""
postfix: ""
loop: 0
format: ""