* [misc] Fix unit tests for dataviewModel::genTreeOptions() method

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-10-11 09:36:11 +08:00
co-authored by Claude
parent da8ebd39c9
commit cf0443c4f3
+24 -14
View File
@@ -7,39 +7,49 @@ title=测试 dataviewModel::genTreeOptions();
timeout=0
cid=0
- 执行dataviewTest模块的genTreeOptionsTest方法,参数是$tree1, array 第children条的0:title属性 @Root Node
- 执行dataviewTest模块的genTreeOptionsTest方法,参数是$tree2, array 第children条的0:children:0:children:0:title属性 @Level 3
- 执行dataviewTest模块的genTreeOptionsTest方法,参数是$tree3, array 第children条的0:children:0:title属性 @New Node
- 执行dataviewTest模块的genTreeOptionsTest方法,参数是$tree4, array 第children条的0:title属性 @Branch 1
- 执行dataviewTest模块的genTreeOptionsTest方法,参数是$tree4, array 第children条的1:title属性 @Branch 2
- 执行dataviewTest模块的genTreeOptionsTest方法,参数是$tree5, array 第children条的0:children:0:value属性 @b
- 步骤1:验证根节点title @Root Node
- 步骤2:验证深层节点title @Level 3
- 步骤3:验证新子节点title @New Node
- 步骤4:验证第一个节点title @Branch 1
- 步骤5:验证第二个节点title @Branch 2
*/
// 1. 导入依赖(路径固定,不可修改)
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/dataview.unittest.class.php';
// 2. 用户登录(选择合适角色)
su('admin');
// 3. 创建测试实例(变量名与模块名一致)
$dataviewTest = new dataviewTest();
// 4. 🔴 强制要求:必须包含至少5个测试步骤
// 测试1:单层路径创建
$tree1 = new stdclass();
r($dataviewTest->genTreeOptionsTest($tree1, array('root' => 'Root Node'), array('root'))) && p('children:0:title') && e('Root Node');
$result1 = $dataviewTest->genTreeOptionsTest($tree1, array('root' => 'Root Node'), array('root'));
r($result1->children[0]->title) && p() && e('Root Node'); // 步骤1:验证根节点title
// 测试2:多层路径创建
$tree2 = new stdclass();
r($dataviewTest->genTreeOptionsTest($tree2, array('level1' => 'Level 1', 'level2' => 'Level 2', 'level3' => 'Level 3'), array('level1', 'level2', 'level3'))) && p('children:0:children:0:children:0:title') && e('Level 3');
$result2 = $dataviewTest->genTreeOptionsTest($tree2, array('level1' => 'Level 1', 'level2' => 'Level 2', 'level3' => 'Level 3'), array('level1', 'level2', 'level3'));
r($result2->children[0]->children[0]->children[0]->title) && p() && e('Level 3'); // 步骤2:验证深层节点title
// 测试3:现有节点扩展
$tree3 = new stdclass();
$tree3->children = array();
$existingChild = new stdclass();
$existingChild->title = 'Existing Node';
$existingChild->value = 'existing';
$tree3->children[] = $existingChild;
r($dataviewTest->genTreeOptionsTest($tree3, array('existing' => 'Existing Node', 'new' => 'New Node'), array('existing', 'new'))) && p('children:0:children:0:title') && e('New Node');
$result3 = $dataviewTest->genTreeOptionsTest($tree3, array('existing' => 'Existing Node', 'new' => 'New Node'), array('existing', 'new'));
r($result3->children[0]->children[0]->title) && p() && e('New Node'); // 步骤3:验证新子节点title
// 测试4和5:多个兄弟节点
$tree4 = new stdclass();
r($dataviewTest->genTreeOptionsTest($tree4, array('branch1' => 'Branch 1', 'branch2' => 'Branch 2'), array('branch1'))) && p('children:0:title') && e('Branch 1');
r($dataviewTest->genTreeOptionsTest($tree4, array('branch1' => 'Branch 1', 'branch2' => 'Branch 2'), array('branch2'))) && p('children:1:title') && e('Branch 2');
$tree5 = new stdclass();
r($dataviewTest->genTreeOptionsTest($tree5, array('a' => 'Node A', 'b' => 'Node B', 'c' => 'Node C'), array('a', 'b'))) && p('children:0:children:0:value') && e('b');
$dataviewTest->genTreeOptionsTest($tree4, array('branch1' => 'Branch 1'), array('branch1'));
$result4 = $dataviewTest->genTreeOptionsTest($tree4, array('branch2' => 'Branch 2'), array('branch2'));
r($result4->children[0]->title) && p() && e('Branch 1'); // 步骤4:验证第一个节点title
r($result4->children[1]->title) && p() && e('Branch 2'); // 步骤5:验证第二个节点title