status: done created: 2026-08-04
| 项目 | 值 |
|---|---|
| JUnit 版本 | JUnit 5(Spring Boot Starter Test) |
| Mock 风格 | JDK 动态代理 + 反射注入 MyBatis-Plus baseMapper,沿用模块既有测试风格 |
| 已有相关测试 | BusinessApplicationServiceTest、BusinessApplicationObjectServiceTest |
| 前端验证 | ESLint/生产构建,删除入口为薄交互层不新增组件测试框架 |
| 方法 | 场景 | 输入 | Mock 行为 | 预期结果 |
|---|---|---|---|---|
delete |
有孤立对象且已确认 | id=10, cleanup=true |
子域/应用/入口/有效引用为 0,对象为 2 | 删除关系、逻辑删除对象、删除业务域 |
delete |
有孤立对象但未确认 | id=10, cleanup=false |
对象为 2 | 抛出包含对象数量的确认提示,不清理 |
delete |
仍有业务应用 | cleanup=true |
应用数为 1 | 优先提示删除/迁移应用,不清理对象 |
delete |
仍有访问入口 | cleanup=true |
入口数为 1 | 提示删除/迁移入口,不清理对象 |
delete |
对象仍被有效应用引用 | cleanup=true |
有效引用数为 1 | 失败关闭,不清理对象 |
delete |
无对象 | cleanup=false |
所有依赖计数为 0 | 直接逻辑删除业务域 |
BusinessSuiteMapper.xml:
del_flag = 0。del_flag = id,限定 tenant_id + suite_code + del_flag = 0。tenant_id + suite_code。false,并传递到 Service。cleanupOrphanObjects。true。git diff --check。| 时间 | 范围 | 命令 | 结果 | 备注 |
|---|---|---|---|---|
| 2026-08-04 | 前序字典唯一性变更 | generator 相关模块测试 | 已通过 | 前序提交 85331311,不替代本轮验证 |
| 时间 | 变更范围 | 必跑项 | 实际命令 | 结果 | 跳过/警告 |
|---|---|---|---|---|---|
| 2026-08-04 | 后端删除链路 | Red | mvn -Penable-tests -Dtest=BusinessSuiteServiceTest test |
失败,6 处均为缺少 delete(Long, boolean) |
符合预期 Red |
| 2026-08-04 | 后端删除链路 | Green | 同上 | 6/6 通过 | 无跳过 |
| 2026-08-04 | generator 回归 | 模块全量测试 | mvn -Penable-tests test |
569 个中 563 通过,2 失败、4 错误 | 失败位于未修改的公式、Binding、扩展版本和运行配置测试 |
| 2026-08-04 | 前端 API/交互 | 生产构建 | pnpm build(Node 20.19.0) |
通过,8847 modules,3m43s | 仅既有 Vite/CSS/动态导入警告 |
| 2026-08-04 | 前端目标文件 | ESLint | pnpm exec eslint ... |
0 errors,3 warnings | index.vue 原有 attributes-order 警告 |
| 2026-08-04 | Mapper XML | XML 解析 | xmllint --noout BusinessSuiteMapper.xml |
通过 | 无输出 |
| 2026-08-04 | 全部差异 | 差异检查 | git diff --check |
通过 | 保留既有 .DS_Store 变更 |
execution-log.md:已记录 Red/Green、回归测试、前端构建和静态检查。DELETE /ai/business/suite/{id}?cleanupOrphanObjects=true。