From 1dd840655b2ed4ca94f36512383ae68bc43447f3 Mon Sep 17 00:00:00 2001 From: shunli Date: Thu, 8 Oct 2026 08:30:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AE=A1=E6=89=B9=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E5=B8=83=E5=B1=80=E6=B5=8B=E8=AF=95=E8=B7=A8=E5=B8=A7?= =?UTF-8?q?=E6=B5=8B=E9=87=8F=EF=BC=8809-17-company-loan-principal-repayme?= =?UTF-8?q?nt=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 两个同排按钮在同一次浏览器执行中测量,保留纵坐标严格相等及原高度差断言,不修改报销或资金业务规则。 定向审批浏览器验证 21/21 通过,零重试;任务与治理检查通过。原 7a48a1e7 正式门禁失败记录保留,新候选待重跑完整门禁。 真实建行材料、人员核实与独立业务验收仍待完成;本次仅本地提交,不推送、不部署。 --- .../implement.md | 12 ++++++++++++ client/tests/e2e/workflow-action-confirm-ui.spec.ts | 12 ++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/.trellis/tasks/09-17-company-loan-principal-repayment/implement.md b/.trellis/tasks/09-17-company-loan-principal-repayment/implement.md index 2e89f904..cbf955a0 100644 --- a/.trellis/tasks/09-17-company-loan-principal-repayment/implement.md +++ b/.trellis/tasks/09-17-company-loan-principal-repayment/implement.md @@ -1,3 +1,15 @@ +## 2026-10-08 正式本地发布门禁及测量时序修正 + +用户同意对固定干净候选 `7a48a1e7` 运行正式本地门禁;执行 `bash scripts/qa/run-release-gate.sh verify-candidate`,未推送、部署、查询生产或执行远端备份切换。专用浏览器经官方安装及受控复制,Chromium/WebKit 原生隔离检查通过。原始回执保留在 `artifacts/release-gate/loan-7a48a1e7-20261008/release-result.json`,结论 **FAIL,不具备发布资格**,不以针对性重验覆盖它。 + +- static 通过;完整服务端单测 4480 通过、1 项原有跳过,前端类型/构建、审批操作及门禁默认配置的服务端流程通过。`regression-all.sh` 默认关闭的 7 个可选专项没有执行,不计通过。 +- 网页完整发现 59 个本地 spec、372 个用例,执行 371 通过、1 失败、0 跳过、0 重试。唯一失败是既有报销审批用例 `workflow-action-confirm-ui.spec.ts:530`:两个同排按钮先后读取纵坐标,相差约 1.16px,严格相等断言失败。原用例及报销页面均不在本轮借款业务改动中。 +- 回执确认候选源码/仓库全程未变,隔离数据库容器及运行目录清理通过。仍不替代真实建行材料、人员可用性与外部业务验收。 +- 本轮仅修正该用例的测量时序:在同一次浏览器执行中读取两个按钮的位置,保留原有纵坐标严格相等及高度差上限断言;页面仍保留 320ms 入场动画。不修改业务实现、不增加像素容差、不跳过用例。 +- [x] 用官方受管 `retained-local` 对整个 `workflow-action-confirm-ui.spec.ts` 定向验证:21/21 通过,0 跳过、0 重试,原报销证据/退回意见断言以及电脑/手机审批场景均执行,环境和自有容器/运行目录清理通过。结果保留在 `artifacts/qa-flow/loan-gate-layout-20261008/`,不作为正式发布回执。 +- 定向入口:`QA_FULL_REPORT_DIR=artifacts/qa-flow/loan-gate-layout-20261008 QA_RETAINED_SPECS=workflow-action-confirm-ui.spec.ts bash scripts/qa/run-web-gates.sh retained-local`;执行时另显式指定本次经校验复制的专用浏览器目录和受控 BIFF8 Python,不使用共享历史浏览器缓存。任务校验、治理、流程合同及 `git diff --check` 通过。 +- 用户已确认将本次测试修正及任务记录这两个文件本地提交,不推送、不部署。提交后对新的固定干净候选重跑正式完整门禁,结果写入新的本地回执,保留上次失败记录;本记录提交时尚不宣称正式门禁通过。 + ## 2026-10-07 后续收口执行(用户同意执行) 按后续工作清单,先将已验证的 S4–S8 共 32 项改动本地提交,提交保留“真实回单待验、整体业务验收未通过”。随后补齐提交登记、清单复核、失败归属、晚到补记和追回的浏览器闭环,并准备发布前存量/迁移/回退检查材料。当前 inline 主会话直接实现和检查,不另派代理;此前两名代理的复核仅覆盖其当时差异。用户本轮已明确授权生产借款存量的只读汇总查询;人员与银行材料答复“不清楚”,保持待核实;推送、部署和远端备份切换不在本次默认执行内。以下“32 项未提交”属于提交前验证时点。 diff --git a/client/tests/e2e/workflow-action-confirm-ui.spec.ts b/client/tests/e2e/workflow-action-confirm-ui.spec.ts index ed9ba1a4..7d6c9291 100644 --- a/client/tests/e2e/workflow-action-confirm-ui.spec.ts +++ b/client/tests/e2e/workflow-action-confirm-ui.spec.ts @@ -522,8 +522,16 @@ test.describe("R7E 审批动作二次确认", () => { await expect(primaryActions.getByRole("button")).toHaveCount(2); await expect(primaryActions.getByRole("button", { name: "通过" })).toBeVisible(); await expect(primaryActions.getByRole("button", { name: "退回修改" })).toBeVisible(); - const approveBox = await page.getByTestId("workflow-task-approve").boundingBox(); - const returnBox = await page.getByTestId("workflow-task-return-toggle").boundingBox(); + // Read both rectangles in one browser task: page-reveal moves their shared + // ancestor, so sequential boundingBox calls can observe different frames. + const [approveBox, returnBox] = await primaryActions.evaluate((element) => ( + ["workflow-task-approve", "workflow-task-return-toggle"].map((testId) => { + const button = element.querySelector(`[data-testid="${testId}"]`); + if (!button) return null; + const { y, height } = button.getBoundingClientRect(); + return { y, height }; + }) + )); expect(approveBox).not.toBeNull(); expect(returnBox).not.toBeNull(); expect(Math.abs(approveBox!.height - returnBox!.height)).toBeLessThanOrEqual(1);