From 70af0c6b9aa3a7a832ec2a15576f2909c2de74d1 Mon Sep 17 00:00:00 2001 From: shunli Date: Sat, 26 Sep 2026 20:28:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E4=BA=A7=E6=B5=81=E8=BD=ACE2E?= =?UTF-8?q?=E5=90=8E=E9=80=80=E5=89=8D=E7=AD=89=E5=BE=85=E6=9C=AA=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E7=8A=B6=E6=80=81=E8=90=BD=E5=AE=9A=20[09-06-release-?= =?UTF-8?q?gate-integrity]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 保存后 URL 同步 replace,而「表单已保存」需多次渲染才传到导航拦截器 (UnsavedChangesGuard 的 ref 在 effect 中更新)。负载下测试在 URL 变化后 立即 goBack 被拦为未保存(门禁 5 轮失败 2 次,快照可见确认框)。 改为沿用 r103 的写法,先等 html[data-unsaved-changes="false"] 再后退; 断言不变。 Co-Authored-By: Claude Opus 5.5 --- client/tests/e2e/assets-flow.spec.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client/tests/e2e/assets-flow.spec.ts b/client/tests/e2e/assets-flow.spec.ts index bf617910..326ecc93 100644 --- a/client/tests/e2e/assets-flow.spec.ts +++ b/client/tests/e2e/assets-flow.spec.ts @@ -119,6 +119,9 @@ test("E2E 资产流转主链路:建卡→领用归还→调拨→盘点", asyn const assetId = createAssetPayload.data.asset.id; await expect(page).toHaveURL(new RegExp(`/assets/${assetId}$`)); await expect(page.getByTestId("unsaved-changes-dialog")).toHaveCount(0); + // The URL changes before the saved form state reaches the navigation guard; + // going back earlier is blocked as "unsaved" on a loaded host. + await expect(page.locator("html")).toHaveAttribute("data-unsaved-changes", "false"); await page.goBack(); await expect(page).toHaveURL(/\/assets$/); await page.goForward();