48 lines
1.8 KiB
TypeScript
48 lines
1.8 KiB
TypeScript
/* list-marker.test.ts — hasLineMarker 行首列表标记检测验证 */
|
|
import { describe, it, expect } from 'vitest'
|
|
import { hasLineMarker } from '../src/core/richtext'
|
|
|
|
describe('hasLineMarker 行首列表标记检测', () => {
|
|
it('圈号 ①-⑳ 识别为标记', () => {
|
|
expect(hasLineMarker('① 第一点')).toBe(true)
|
|
expect(hasLineMarker('⑳ 最后一点')).toBe(true)
|
|
})
|
|
|
|
it('阿拉伯数字+点/顿/括号 识别为标记', () => {
|
|
expect(hasLineMarker('1. 标题')).toBe(true)
|
|
expect(hasLineMarker('12、要点')).toBe(true)
|
|
expect(hasLineMarker('3)要点')).toBe(true)
|
|
expect(hasLineMarker('(4). 要点')).toBe(true)
|
|
expect(hasLineMarker('5.全角点')).toBe(true)
|
|
})
|
|
|
|
it('圆点类符号识别为标记', () => {
|
|
expect(hasLineMarker('- 要点')).toBe(true)
|
|
expect(hasLineMarker('• 要点')).toBe(true)
|
|
expect(hasLineMarker('· 要点')).toBe(true)
|
|
expect(hasLineMarker('▪ 要点')).toBe(true)
|
|
expect(hasLineMarker('● 要点')).toBe(true)
|
|
expect(hasLineMarker('○ 要点')).toBe(true)
|
|
expect(hasLineMarker('* 强调')).toBe(true)
|
|
})
|
|
|
|
it('中文数字+点顿 识别为标记', () => {
|
|
expect(hasLineMarker('一、概述')).toBe(true)
|
|
expect(hasLineMarker('十二. 展开')).toBe(true)
|
|
expect(hasLineMarker('十.收尾')).toBe(true)
|
|
})
|
|
|
|
it('行首空白不影响检测', () => {
|
|
expect(hasLineMarker(' ① 缩进的圈号')).toBe(true)
|
|
expect(hasLineMarker('\t- 制表符开头的圆点')).toBe(true)
|
|
})
|
|
|
|
it('普通文本返回 false', () => {
|
|
expect(hasLineMarker('华东 Q3 增长 23%')).toBe(false)
|
|
expect(hasLineMarker('第一点(无标点编号)')).toBe(false)
|
|
expect(hasLineMarker('')).toBe(false)
|
|
expect(hasLineMarker('2026 年趋势')).toBe(false)
|
|
expect(hasLineMarker('1 比 2 更好')).toBe(false)
|
|
})
|
|
})
|