From fda4d229a985e8e32ab072af968c9ce7f2b4affa Mon Sep 17 00:00:00 2001 From: liugang Date: Sat, 6 Sep 2025 18:14:16 +0800 Subject: [PATCH] + [misc] Add unit tests for aiModel::publishMiniProgram() 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/ai/test/lib/ai.unittest.class.php | 16 +++ module/ai/test/model/publishminiprogram.php | 50 ++++++++ .../yaml/ai_message_publishminiprogram.yaml | 49 ++++++++ .../ai_miniprogram_publishminiprogram.yaml | 112 ++++++++++++++++++ 4 files changed, 227 insertions(+) create mode 100755 module/ai/test/model/publishminiprogram.php create mode 100644 module/ai/test/model/yaml/ai_message_publishminiprogram.yaml create mode 100644 module/ai/test/model/yaml/ai_miniprogram_publishminiprogram.yaml diff --git a/module/ai/test/lib/ai.unittest.class.php b/module/ai/test/lib/ai.unittest.class.php index 3b10a1b532..54e2acab1b 100644 --- a/module/ai/test/lib/ai.unittest.class.php +++ b/module/ai/test/lib/ai.unittest.class.php @@ -767,4 +767,20 @@ class aiTest // 否则应该为每个用户都创建了一条通知 return $userCount; } + + /** + * Test publishMiniProgram method. + * + * @param mixed $appID + * @param mixed $published + * @access public + * @return mixed + */ + public function publishMiniProgramTest($appID = null, $published = '1') + { + $result = $this->objectModel->publishMiniProgram($appID, $published); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/ai/test/model/publishminiprogram.php b/module/ai/test/model/publishminiprogram.php new file mode 100755 index 0000000000..1a0406308a --- /dev/null +++ b/module/ai/test/model/publishminiprogram.php @@ -0,0 +1,50 @@ +#!/usr/bin/env php +id->range('1-3'); +$table->name->range('测试小程序1,测试小程序2,测试小程序3'); +$table->category->range('work,personal,creative'); +$table->published->range('0,1,0'); +$table->publishedDate->range('~~,2024-01-01 10:00:00,~~'); +$table->deleted->range('0'); +$table->createdBy->range('admin'); +$table->createdDate->range('2024-01-01 09:00:00'); +$table->editedBy->range('admin'); +$table->editedDate->range('2024-01-01 09:00:00'); +$table->desc->range('测试描述'); +$table->prompt->range('测试提示'); +$table->builtIn->range('0'); +$table->gen(3); + +// 3. 用户登录(选择合适角色) +su('admin'); + +// 4. 创建测试实例(变量名与模块名一致) +$aiTest = new aiTest(); + +// 5. 🔴 强制要求:必须包含至少5个测试步骤 +r($aiTest->publishMiniProgramTest(1, '1')) && p() && e(true); // 步骤1:发布新的小程序(首次发布) +r($aiTest->publishMiniProgramTest(2, '1')) && p() && e(true); // 步骤2:发布已发布的小程序(版本更新) +r($aiTest->publishMiniProgramTest(2, '0')) && p() && e(true); // 步骤3:取消发布小程序(设置为未发布状态) +r($aiTest->publishMiniProgramTest(999, '1')) && p() && e(true); // 步骤4:测试无效的小程序ID +r($aiTest->publishMiniProgramTest(3, '')) && p() && e(true); // 步骤5:测试边界值published参数 \ No newline at end of file diff --git a/module/ai/test/model/yaml/ai_message_publishminiprogram.yaml b/module/ai/test/model/yaml/ai_message_publishminiprogram.yaml new file mode 100644 index 0000000000..968e263248 --- /dev/null +++ b/module/ai/test/model/yaml/ai_message_publishminiprogram.yaml @@ -0,0 +1,49 @@ +--- +title: AI消息测试数据 +desc: 为publishMiniProgram方法中的通知功能提供测试数据 +author: Claude +version: 1.0 + +fields: +- field: id + note: 消息ID + range: 1-10 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: appID + note: 关联小程序ID + range: 1{2},2{2},3{2},6{2},7{1},8{1} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: user + note: 用户ID + range: 1{4},2{3},3{2},4{1} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: type + note: 消息类型 + range: req{5},res{3},ntf{2} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: content + note: 消息内容 + range: 测试请求消息{3},测试响应消息{3},测试通知消息{2},历史消息内容{2} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: createdDate + note: 创建时间 + range: 2024-01-01 11:00:00,2024-01-01 11:10:00,2024-01-01 11:20:00,2024-01-01 11:30:00,2024-01-01 11:40:00,2024-01-01 11:50:00,2024-01-01 12:00:00,2024-01-01 12:10:00,2024-01-01 12:20:00,2024-01-01 12:30:00 + prefix: "" + postfix: "" + loop: 0 + format: "" \ No newline at end of file diff --git a/module/ai/test/model/yaml/ai_miniprogram_publishminiprogram.yaml b/module/ai/test/model/yaml/ai_miniprogram_publishminiprogram.yaml new file mode 100644 index 0000000000..73d9bb2452 --- /dev/null +++ b/module/ai/test/model/yaml/ai_miniprogram_publishminiprogram.yaml @@ -0,0 +1,112 @@ +--- +title: AI小程序发布功能测试数据 +desc: 为publishMiniProgram方法提供测试数据,包括不同发布状态的小程序数据 +author: Claude +version: 1.0 + +fields: +- field: id + note: 小程序ID + range: 1-10 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: name + note: 小程序名称 + range: 职业发展导航,工作汇报,市场分析报告,健身计划,广告创意大师,文章撰写助手,视频脚本创意工坊,邮件起草助手,新人介绍,调研问卷生成器 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: category + note: 小程序分类 + range: personal{3},work{4},creative{2},life{1} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: desc + note: 小程序描述 + range: 测试小程序描述{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: model + note: 关联的AI模型ID + range: 1-5:R,~~{5} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: icon + note: 小程序图标 + range: technologist-6,technologist-2,chart-6,cactus-5,palette-3,writinghand-3,notebook-3,computer-6,pencil-7,search-6 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: createdBy + note: 创建者 + range: admin{5},system{3},user1{1},user2{1} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: createdDate + note: 创建时间 + range: 2024-01-01 09:00:00,2024-01-02 09:00:00,2024-01-03 09:00:00,2024-01-04 09:00:00,2024-01-05 09:00:00,2024-01-06 09:00:00,2024-01-07 09:00:00,2024-01-08 09:00:00,2024-01-09 09:00:00,2024-01-10 09:00:00 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: editedBy + note: 编辑者 + range: admin{8},user1{1},user2{1} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: editedDate + note: 编辑时间 + range: 2024-01-01 10:00:00,2024-01-02 10:00:00,2024-01-03 10:00:00,2024-01-04 10:00:00,2024-01-05 10:00:00,2024-01-06 10:00:00,2024-01-07 10:00:00,2024-01-08 10:00:00,2024-01-09 10:00:00,2024-01-10 10:00:00 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: published + note: 发布状态 + range: 0{5},1{5} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: publishedDate + note: 发布时间 + range: ~~{5},2024-01-06 10:00:00,2024-01-07 11:00:00,2024-01-08 12:00:00,2024-01-09 13:00:00,2024-01-10 14:00:00 + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: deleted + note: 删除状态 + range: 0{10} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: prompt + note: 提示信息 + range: 请帮我生成{5},假设我是{3},请为我提供{2} + prefix: "" + postfix: "" + loop: 0 + format: "" +- field: builtIn + note: 内置标识 + range: 1{7},0{3} + prefix: "" + postfix: "" + loop: 0 + format: "" \ No newline at end of file