| 123456789101112131415161718192021 |
- // ellipsis 地图标签契约自测(批次 3 第四轮:与 DOM 侧同语义)
- import { ellipsisForMapLabel, ELLIPSIS_MARK } from '../../../src/modules/cockpit/domain/ellipsis.js'
- let pass = 0
- let fail = 0
- const eq = (a, e, l) => {
- if (JSON.stringify(a) === JSON.stringify(e)) { pass++; console.log(` ✓ ${l}`) } else { fail++; console.log(` ✗ ${l} 期望 ${JSON.stringify(e)} 实际 ${JSON.stringify(a)}`) }
- }
- // 27px 本体 × 2.2 = 59.4px 限宽,12px 字号
- const r1 = ellipsisForMapLabel('测试监测', 48, 12)
- eq(r1.truncated, false, '4 字(48px)在 48px 限宽内——不截')
- const r2 = ellipsisForMapLabel('测试污水排口监测点', 59.4, 12)
- eq(r2.truncated, true, '9 字超限 → 截断')
- eq(r2.shown.endsWith(ELLIPSIS_MARK), true, '省略号结尾')
- eq(r2.title, '测试污水排口监测点', 'title = 完整原文(hover 读全)')
- eq(ellipsisForMapLabel('', 59.4, 12).shown, '', '空文本回空串')
- eq(ellipsisForMapLabel('测试', 0, 12).truncated, false, '限宽 0 = 不截(留口子)')
- console.log(` ${pass} 过 / ${fail} 败`)
- if (fail) process.exitCode = 1
|