fix(v2): 浏览器端到端验证——修掉模块页在浏览器里渲染不出内容的缺陷
首次用真实 Chrome 打开 /trajectory-center(新增可选脚本 scripts/browser-e2e.cjs),
暴露 5 个源码守卫与生产构建都看不出的缺陷,全部修复:
1. 三个模块页读 `list.items`,而 /projects 返回的是 {projects, identity}——
项目列表恒为空,prescreen-workbench / experience-center / trajectory-center
整页渲染不出任何面板,只显示"当前身份没有可访问的项目"这种看着正常的空态。
(第二/三批引入)改为 list.projects。
2. TrajectoryPanel 没被传 identity,canRecord 恒假 → 会议结果录入表单永不出现。
3. ImprovementPanel 草稿下拉以组件 id 作 key/value,同一组件多版本草稿时撞 React key,
且选不准要发布哪一版;改以 `组件id@版本` 为键值。
4. JSX 文本里的 `**强调**` 会原样显示星号(JSX 不渲染 Markdown),共 9 处;
改为 <b>(字符串上下文处直接去掉标记)。
5. 深色导航模块名被 flex 压缩折行("AI 预审"断成两行);
加 flex:0 0 auto + white-space:nowrap。
另修一个既有测试脆弱点:test_trajectory.py 的更正用例断言"哪条排前面",
两条记录同刻度时排序翻转,曾让 verify.py 偶发失败;改为断言"两条都在、更正指向旧记录"。
回归防线:第 5 项补进 test_module_shell_ui.cjs 源码断言;
test_ui_readability.cjs 的导航字号断言改为不把 min-height 钉在规则首位。
验证:scripts/verify.py 14/14 PASS(backend-unit 572 项),
证据 test-evidence/20261001-030127-ff59d7e/;scripts/browser-e2e.cjs 19/19 PASS
(截图在 test-evidence/e2e-batch4/)。该 E2E 脚本刻意不接入 verify.py。
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -170,7 +170,13 @@ class ReviewOutcomeTests(unittest.TestCase):
|
||||
with store.transaction(self.service.db_path) as db:
|
||||
rows = trajectory.listing(db, PROJECT)["items"]
|
||||
self.assertEqual(len(rows), 2, "更正必须追加,不得覆盖旧记录")
|
||||
self.assertEqual(rows[0]["raw_code"], "通过")
|
||||
# 不断言"哪条排前面":两条记录可能落在同一时钟刻度,`listing()` 按 recorded_at 排序
|
||||
# 时顺序就取决于底层 rowid 顺序。那是与本用例无关的偶然假设,且曾让全量验证偶发失败。
|
||||
# 本用例要锁的是"旧记录仍在、更正指向它",与排序无关。
|
||||
by_code = {row["raw_code"]: row for row in rows}
|
||||
self.assertEqual(sorted(by_code), ["否决", "通过"], "两条结果都必须在,追加不得覆盖")
|
||||
self.assertEqual(by_code["否决"]["supersedes_id"], first["id"])
|
||||
self.assertIsNone(by_code["通过"]["supersedes_id"])
|
||||
|
||||
def test_correction_must_point_to_an_existing_record_of_the_project(self):
|
||||
with self.assertRaises(ValueError):
|
||||
|
||||
Reference in New Issue
Block a user