test-spec.md 3.0 KB

定时任务告警权限审计测试计划

status: complete updated: 2026-07-20

1. 验证目标

复用 V5 Job 模块 94/94、前端定向测试 16/16、Admin Reactor 42/42 和生产构建基线,增量验证 V6 的最终失败告警、消息渠道、权限矩阵、Service 二次校验、安全审计和告警配置交互。

2. 验证矩阵

优先级 范围 验证方式
P0 告警字段、渠道字典、按钮/API 权限资源 Flyway 合约测试、placeholder 扫描
P0 重试成功不告警、最终失败只告警一次 JobExecutionLifecycleServiceTest、JobFailureAlarmServiceTest
P0 WEB/EMAIL 选择、消息失败不覆盖 FAILED JobFailureAlarmServiceTest
P0 危险目标、受保护任务、敏感详情二次校验 JobManagementSecurityServiceTest、Service 测试
P0 Controller 权限注解和安全审计 Controller 合约测试、审计快照单测
P1 告警表单归一化、校验和操作可见性 前端定向 Vitest、ESLint、生产构建

3. 必跑命令

  • Job 模块:mvn -Penable-tests -pl forge-framework/forge-plugin-parent/forge-plugin-job -am test
  • 前端单测:Job 配置表单、权限和日志查询相关 Vitest。
  • 前端检查:V6 定向 ESLint、pnpm build
  • 静态检查:Mapper XML、Flyway placeholder、权限资源、敏感字段、冲突标记和 git diff --check
  • 聚合验证:mvn -pl forge-admin-server -am package -DskipTests

4. 边界

  • 不启动真实 MySQL、Redis、Admin 或 Quartz 集群;Flyway、消息投递、操作日志落库和真实权限分配由开发环境验收。
  • 浏览器检查只验证本地前端可达时的结构和交互,不把模拟数据表述为真实后端联调。
  • 本轮不增加 Webhook、开放 API、角色模板或普通租户自助任务。

5. 执行结果

  • Job 模块:Java 17 下执行 mvn -Penable-tests -pl forge-framework/forge-plugin-parent/forge-plugin-job -am test,Job 模块 106/106 通过,Reactor 全部成功。
  • 前端单测:Node 20.19.0 下执行三组定向 Vitest,3 个测试文件、18/18 通过。
  • 前端检查:V6 定向 ESLint 无输出通过;NODE_OPTIONS=--max-old-space-size=8192 pnpm build 生产构建通过,保留仓库既有 CSS 注释、组件命名冲突和动态/静态导入警告。
  • 聚合验证:Java 17 下执行 mvn -pl forge-admin-server -am package -DskipTests,42/42 模块成功,生成 forge-admin-server.jar
  • 静态检查:两个 Job Mapper XML 通过 xmllint;Flyway placeholder、权限绕过、V6 Webhook/角色模板、冲突标记扫描均无命中;git diff --check 通过。
  • 生产预览:vite preview 返回 HTTP 200,Vue 根节点和 JS/CSS 资源已加载,无 console error 或 page error;因后端未启动,页面停在启动加载壳且未达到 networkidle,未表述为业务接口联调通过。
  • 跳过项:未执行真实 Flyway、消息投递、角色权限分配、操作日志落库和调度集群验证,按测试边界留待开发环境验收。