From 497d3bbcbd26df3e417b6c0f735d9e3c1ab111bc Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期二, 08 九月 2026 17:07:09 +0800
Subject: [PATCH] 恢复化成详情表单并保留工步设置

---
 tests/e2e/formation-source-details.spec.ts |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/tests/e2e/formation-source-details.spec.ts b/tests/e2e/formation-source-details.spec.ts
index 6840a40..576455d 100644
--- a/tests/e2e/formation-source-details.spec.ts
+++ b/tests/e2e/formation-source-details.spec.ts
@@ -83,6 +83,16 @@
   expect(first.settings.sourceDetailOverrides['9501|9501'].fieldValues['battery|人工字段']).toBe('报表覆盖')
   expect(first.settings.sourceDetailOverrides['9502|9503'].experimentName).toBe('')
   expect((await api(page, 'test/9501')).consoleDetail.fieldValues.人工字段.同名电池).toBe('甲值')
+  for (const sourceDetailOverrides of [
+    { '9506|9507': { experimentName: '伪造来源' } },
+    { '9501|9501|1|1': { experimentName: '曲线范围不是详情身份' } },
+    { '9501|9501': { fieldValues: { voltage: '不能冒充设备字段' } } },
+  ]) {
+    await api(page, `formation-report/${id}/versions`, 'POST', {
+      name: first.name, description: '', baseVersionNo: 1, changeSummary: '拒绝伪造详情', settings: { ...first.settings, sourceDetailOverrides },
+    }, 500)
+  }
+  expect((await api(page, `formation-report/${id}`)).versionNo).toBe(1)
   const fields = first.settings.fields
   const template = await api(page, 'formation-report/templates', 'POST', { name: '纯结构模板', fields })
   expect(template).toBeGreaterThan(0)
@@ -96,10 +106,15 @@
   await expect(page.getByRole('textbox', { name: '化成详情甲 同名电池 详情 人工字段', exact: true })).toHaveValue('报表覆盖')
   await page.getByRole('textbox', { name: '化成详情甲 同名电池 实验名称', exact: true }).fill('报表实验甲')
   await page.getByPlaceholder('请输入修改说明').fill('详情独立编辑')
+  const versionResponse = page.waitForResponse(response => response.url().endsWith(`/formation-report/${id}/versions`) && response.request().method() === 'POST')
   await page.getByRole('button', { name: '保存新版本', exact: true }).click()
+  const versionBody = await (await versionResponse).json()
+  expect(versionBody.code, versionBody.msg).toBe(200)
+  expect(versionBody.data.versionNo).toBe(2)
+  await expect(page).toHaveURL(/mode=view$/)
   await expect(page.getByRole('textbox', { name: '化成详情甲 同名电池 实验名称', exact: true })).toHaveValue('报表实验甲')
   const second = await api(page, `formation-report/${id}`)
-  expect(second.versionNo).toBeGreaterThanOrEqual(1)
+  expect(second.versionNo).toBe(2)
   expect(second.items).toEqual(first.items)
   await api(page, `formation-report/${id}/versions`, 'POST', { name: first.name, description: '', baseVersionNo: 1, changeSummary: '陈旧', settings: first.settings }, 500)
   await api(page, 'test/9501/console-detail', 'PUT', { ...detailA, experimentName: '最新来源实验' })

--
Gitblit v1.7.1