Skip to content

fix(quality): 补齐 process/final 检验关联校验并新增契约测试 - #24

Merged
snqig merged 2 commits into
mainfrom
feat/quality-process-final-contract-tests
Oct 7, 2026
Merged

snqig merged 2 commits into
mainfrom
feat/quality-process-final-contract-tests

Conversation

@snqig

@snqig snqig commented Oct 5, 2026

Copy link
Copy Markdown
Owner

背景

质量模块三检体系中,quality/incoming(IQC) 此前已修标准(19 例契约测试)。本次按同一口径补 quality/process(IPQC) 与 quality/final(FQC) 的契约测试,并以红→绿暴露两组关联完整性缺口后闭合。

变更内容

校验缺口修复(route 层,verify-before-act)

  • quality/process POST:补 cardId 存在性校验(不存在 → 404 k_1emlkd9)、cardNo 与 cardId 一致性校验(错位 → 400 cardNoMismatch)。修复前两者均静默成功(返 200),会写入 source_no 与流程卡 card_no 错位的孤儿过程检。
  • quality/final POST:补 cardId 存在性校验(INSERT...SELECT 命中 0 行仍静默成功 → 404)。
  • quality/final PUT:补记录存在性校验(UPDATE 0 行仍静默成功 → 404 k_1emlkd9)。

契约测试(红→绿)

  • tests/integration/quality-process-flow.test.ts(13 用例):缺参/非法值 400、状态机非法 400、cardId 不存在 404、cardNo 不一致 400、resultCode 映射、数量不变量、burdening_status 联动、PUT 缺 id/不存在 404、GET 200。
  • tests/integration/quality-final-flow.test.ts(10 用例):非法值/缺字段 400、超计划数 400、cardId 不存在 404、resultCode+数量不变量、burdening_status(3/5)、PUT 缺 id/不存在 404、GET 200。

种子数据修复

  • database/migrations/20261005_repair_seed_process_card_visibility.sql:幂等恢复 10 张被软删流程卡(按 card_no 列表),sys_migration 登记 batch=164。修复前种子过程检 10 条全为孤儿(source_no 对应卡 deleted=1),现已归零。

验证

  • vitest:quality-process-flow 13 passed、quality-final-flow 10 passed(共 23/23 绿)。
  • 测试以 Mock @/lib/db 等捕获 SQL 副作用,状态机/数量不变量/状态联动口径对齐 incoming 已修标准。

已知依赖(未纳入本 PR)

quality/process route 引用的 i18n key cardNoMismatch 已写入 messages/*.json,但随并行 WIP(StandardTable/PadScan/签样/色差等)一并提交,本 PR 不含 messages 改动。在 messages 提交前,该错误路径会回退为原始 key 字符串;合入 messages 后即恢复正常翻译。

待裁定(未做)

quality/process 的 scrap 结果目前不更新 prd_process_card.burdening_status(route 无对应分支)。本次仅修种子可见性,未动此逻辑;测试已标注待裁定,留待专项评估。

- quality/process POST: 补 cardId 存在性校验(404) 与 cardNo/cardId 一致性校验(400)
- quality/final POST: 补 cardId 存在性校验(404);PUT: 补记录存在性校验(404)
- 新增 tests/integration/quality-process-flow.test.ts(13 用例)、quality-final-flow.test.ts(10 用例),
  沿用 incoming 已修标准的状态机/数量不变量/状态联动口径,以红→绿暴露并闭合上述缺口
- 新增迁移 20261005_repair_seed_process_card_visibility.sql: 幂等恢复 10 张被软删流程卡,
  sys_migration 登记 batch=164,种子过程检孤儿记录归零

已知依赖(未纳入本 PR): process route 引用的 i18n key 'cardNoMismatch' 已写入 messages/*.json,
但随并行 WIP(StandardTable/PadScan/签样/色差等) 一并提交,本 PR 不含 messages 改动。
@vercel

vercel Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
vnerp Error Error Oct 5, 2026 4:13am UTC

This branch had an error being deployed

1 failed deployment
Preview — afa02bd7 Deployed Oct 5, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant