From 5389c9ee72b79385cff6c2dcdc4276a79edc4df7 Mon Sep 17 00:00:00 2001 From: liugang Date: Mon, 24 Nov 2025 20:59:19 +0800 Subject: [PATCH] + [misc] Add unit tests for kanbanTao::refreshStoryCards() 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/kanban/test/tao/refreshstorycards.php | 63 ++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 module/kanban/test/tao/refreshstorycards.php diff --git a/module/kanban/test/tao/refreshstorycards.php b/module/kanban/test/tao/refreshstorycards.php new file mode 100755 index 0000000000..82c3d334e3 --- /dev/null +++ b/module/kanban/test/tao/refreshstorycards.php @@ -0,0 +1,63 @@ +#!/usr/bin/env php +id->range('101'); +$project->type->range('project'); +$project->hasProduct->range('1'); +$project->gen(1); + +$story = zenData('story'); +$story->id->range('1-20'); +$story->product->range('1'); +$story->type->range('story'); +$story->isParent->range('0'); +$story->stage->range('wait,projected,designing,designed,developing,developed,testing,tested,verified,rejected,delivering,delivered,released,closed,wait,projected,developing,tested,released,closed'); +$story->status->range('active{18},closed{2}'); +$story->deleted->range('0{18},1{2}'); +$story->gen(20); + +$projectStory = zenData('projectstory'); +$projectStory->project->range('101'); +$projectStory->product->range('1'); +$projectStory->story->range('1-20'); +$projectStory->version->range('1'); +$projectStory->gen(20); + +// 3. 用户登录(选择合适角色) +su('admin'); + +// 4. 创建测试实例(变量名与模块名一致) +$kanbanTest = new kanbanTaoTest(); + +// 5. 强制要求:必须包含至少5个测试步骤 +$cardPairs = array('backlog' => '', 'ready' => '', 'designing' => '', 'designed' => '', 'develop' => '', 'developing' => '', 'developed' => '', 'test' => '', 'testing' => '', 'tested' => '', 'verified' => '', 'rejected' => '', 'pending' => '', 'released' => '', 'closed' => ''); +r($kanbanTest->refreshStoryCardsTest($cardPairs, 101, '')) && p('developing') && e(',17,5,'); // 步骤1:测试处于开发中(developing)状态的需求卡片刷新 +r($kanbanTest->refreshStoryCardsTest($cardPairs, 101, '')) && p('tested') && e(',18,8,'); // 步骤2:测试处于已测试(tested)状态的需求卡片刷新 +r($kanbanTest->refreshStoryCardsTest($cardPairs, 101, '')) && p('released') && e(',13,'); // 步骤3:测试处于已发布(released)状态的需求卡片刷新 +r($kanbanTest->refreshStoryCardsTest($cardPairs, 101, '')) && p('backlog') && e(',16,15,2,1,'); // 步骤4:测试处于等待和已立项(wait/projected)状态的需求添加到backlog列 +r($kanbanTest->refreshStoryCardsTest(array('backlog' => '', 'ready' => '', 'designing' => '', 'designed' => '', 'develop' => '', 'developing' => ',100,', 'developed' => '', 'test' => '', 'testing' => '', 'tested' => '', 'verified' => '', 'rejected' => '', 'pending' => '', 'released' => '', 'closed' => ''), 101, '')) && p('developing') && e(',17,5,100,'); // 步骤5:测试包含已有卡片的刷新 \ No newline at end of file