fix: 图谱/思维导图高度塌陷导致不显示

真正根因: GraphView 容器有 flex:1(在行布局中)但不是 display:flex,
   子组件 MindmapTree/LinkGraph 的 flex:1 被忽略 → 高度 auto = 0
   (子内容全是绝对定位,无在流内容) → SVG 高度 0 → fit() 计算 NaN
   持续报 translate(NaN,NaN) 错误,内容不可见

   之前 E2E 只数 DOM 元素数量不检查可见性,掩盖了此 bug

修复: GraphView 容器加 display:flex + flexDirection:column,
   子组件 flex:1 正常生效,容器高度正确,内容可见

附带:
- 主进程转发渲染进程 console 到终端(便于 dev 调试)
- graph-render E2E 测试改为检查可见性(getBoundingClientRect)
- 修复 TabBar 关闭全部测试的 flaky 断言(expect.poll 自动重试)
This commit is contained in:
hunter-dev
2026-08-27 17:22:49 +08:00
parent 96f5c72fa7
commit e20fcab837
4 changed files with 45 additions and 25 deletions
+1 -1
View File
@@ -335,7 +335,7 @@ test('TabBar: 关闭全部标签后编辑器应显示空状态', async () => {
await tab.locator('span').filter({ hasText: 'x' }).click();
await a.page.waitForTimeout(500);
// 标签栏为空 → 当前文档应重置,编辑器显示空状态提示
expect(await a.page.evaluate(() => (globalThis as any).__STORE__?.getState?.().currentPath)).toBeNull();
await expect.poll(() => a.page.evaluate(() => (globalThis as any).__STORE__?.getState?.().currentPath), { timeout: 5000 }).toBeNull();
await expect(a.page.getByText('从左侧选择一篇笔记')).toBeVisible({ timeout: 5000 });
await a.app.close();
});