From 90abf9f2fea886be8cf2aba4eb1b80b052add033 Mon Sep 17 00:00:00 2001 From: liugang Date: Mon, 8 Sep 2025 17:13:29 +0800 Subject: [PATCH] + [misc] Add unit tests for instanceModel::isClickable() 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 --- .../test/lib/instance.unittest.class.php | 16 ++++++++ module/instance/test/model/isclickable.php | 40 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100755 module/instance/test/model/isclickable.php diff --git a/module/instance/test/lib/instance.unittest.class.php b/module/instance/test/lib/instance.unittest.class.php index 445c4693df..2f37a2c4bb 100644 --- a/module/instance/test/lib/instance.unittest.class.php +++ b/module/instance/test/lib/instance.unittest.class.php @@ -331,4 +331,20 @@ class instanceTest return $result; } + + /** + * Test isClickable method. + * + * @param object $instance + * @param string $action + * @access public + * @return bool + */ + public function isClickableTest(object $instance, string $action): bool + { + $result = $this->objectModel->isClickable($instance, $action); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/instance/test/model/isclickable.php b/module/instance/test/model/isclickable.php new file mode 100755 index 0000000000..c5d0feb279 --- /dev/null +++ b/module/instance/test/model/isclickable.php @@ -0,0 +1,40 @@ +#!/usr/bin/env php +isClickableTest((object)array('type' => 'store', 'status' => 'stopped'), 'ajaxStart')) && p() && e('1'); // 步骤1:store类型,start动作,stopped状态 +r($instanceTest->isClickableTest((object)array('type' => 'store', 'status' => 'running'), 'ajaxStop')) && p() && e('1'); // 步骤2:store类型,stop动作,running状态 +r($instanceTest->isClickableTest((object)array('type' => 'store', 'status' => 'running', 'domain' => 'test.com'), 'visit')) && p() && e('1'); // 步骤3:store类型,visit动作,有域名 +r($instanceTest->isClickableTest((object)array('type' => 'external'), 'visit')) && p() && e('1'); // 步骤4:非store类型,visit动作 +r($instanceTest->isClickableTest((object)array('type' => 'external'), 'edit')) && p() && e('1'); // 步骤5:非store类型,edit动作 +r($instanceTest->isClickableTest((object)array('type' => 'external', 'appName' => 'GitLab'), 'bindUser')) && p() && e('1'); // 步骤6:非store类型,bindUser动作,GitLab应用 +r($instanceTest->isClickableTest((object)array('type' => 'store', 'status' => 'creating'), 'ajaxStart')) && p() && e('0'); // 步骤7:store类型,start动作,creating状态(不能启动) \ No newline at end of file