Visitar URL original
test: 同步 5 处过期断言,修复 CI 自 11-01 起持续失败 by qiakai · Pull Request #14 · x-cmd/draw · GitHub
Skip to content

test: 同步 5 处过期断言,修复 CI 自 11-01 起持续失败 - #14

Open
qiakai wants to merge 1 commit into
x-cmd:mainfrom
qiakai:test/sync-stale-assertions
Open

qiakai wants to merge 1 commit into
x-cmd:mainfrom
qiakai:test/sync-stale-assertions

Conversation

@qiakai

@qiakai qiakai commented Nov 10, 2026

Copy link
Copy Markdown
Contributor

问题

main 的 CI 从 2026-11-01 起连续失败(同机对照:最后一个绿提交 f9e4d7a 113/113 全过,下一个提交 d59790e 起转红)。5 处失败全部是对有意的设计改动未同步更新的过期断言,渲染输出本身与系统字体/runner 镜像无关(渲染层是纯函数,textW 用内置 Inter 字宽表)。

每处失败的归因与修法

断言 归因 修法
plainGeo 期望 legendY: 50 #27「图例上标题基线」把 legendY 从 PlainGeo 返回类型移除,其余 5 个字段不变 期望值删掉 legendY
combo「线标全出」数 paint-order="stroke" 2026-11-03「去描边」决定(HALO='',代码有注释) 改用线标自身标识 fill=var(--d-text)+data-series 计数
sankey 节点条数 5 Edit 角标(#13/#44)也是 height+rx 圆角 rect,混入计数 只数 fill=var(--d-sN) 的节点条
折线不得穿过数值标签 ① 用数据点直线弦重建线段,Catmull-Rom 拐点处误报(实测 18.7k:弦穿、真实贝塞尔不穿);② 去描边后遮挡判定应看绘制顺序 —— 已验证两个「被穿」标签都画在折线之后(字压线,可读),并非缺陷 从真实贝塞尔路径采样;仅当线画在字之后的几何相交才算遮挡
echarts 期望 DrawInter 去描边同批改为系统字体栈,不再内嵌 Inter 子集 断言改为 ui-sans-serif 系统栈;同步修正 echarts-ssr 的过时注释

验证

  • npm run check(tsc×3)通过;
  • npm test 247/247 全过(修复前 5 失败);
  • node scripts/diagrams.mjs --check 通过。

渲染代码零改动,只动测试与一处注释。

- plainGeo: 期望删掉 legendY 字段(#27 起从返回类型移除)
- combo 线标计数: paint-order=stroke 已随 2026-11-03 去描边决定移除(HALO=''),
  改用线标自身标识 fill=var(--d-text)+data-series
- sankey 节点条计数: 排除 Edit 角标的圆角 rect(fill=var(--d-link))
- 折线穿标签: 从真实贝塞尔采样折线(数据点弦在 Catmull-Rom 拐点误报);
  无描边时代按绘制顺序判定 —— 字压线(标签画在线后)可接受,线压字才算遮挡
- echarts: DrawInter 内嵌字体已移除,断言改为系统字体栈;同步更正过时注释
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant