|
|
@@ -70,3 +70,41 @@ test('边界:表头格式错误', () => {
|
|
|
assert.equal(result.ok, false)
|
|
|
assert.ok(result.error.includes('必须以 | 开头'))
|
|
|
})
|
|
|
+
|
|
|
+test('单字符分隔符 |-| 也要接受(GFM 合法)', () => {
|
|
|
+ const content = `| 正名 | 别名 | 类型 | 首现章 |
|
|
|
+|--|--|--|--|
|
|
|
+| 林晚 | 晚晚 | character | 1 |`
|
|
|
+ const result = parseMarkdownTable(content)
|
|
|
+ assert.equal(result.ok, true, result.error)
|
|
|
+ assert.equal(result.rows.length, 1)
|
|
|
+ assert.equal(result.rows[0].正名, '林晚')
|
|
|
+ assert.equal(result.rows[0].别名, '晚晚')
|
|
|
+})
|
|
|
+
|
|
|
+test('对齐分隔符 |:--:|--:|:--| 也要接受', () => {
|
|
|
+ const content = `| A | B | C |
|
|
|
+|:--|--:|:--:|
|
|
|
+| 1 | 2 | 3 |`
|
|
|
+ const result = parseMarkdownTable(content)
|
|
|
+ assert.equal(result.ok, true, result.error)
|
|
|
+ assert.equal(result.rows[0].B, '2')
|
|
|
+})
|
|
|
+
|
|
|
+test('分隔符格数与表头不一致 → 报错', () => {
|
|
|
+ const content = `| A | B | C |
|
|
|
+|---|---|
|
|
|
+| 1 | 2 | 3 |`
|
|
|
+ const result = parseMarkdownTable(content)
|
|
|
+ assert.equal(result.ok, false)
|
|
|
+ assert.ok(result.error.includes('分隔符'))
|
|
|
+})
|
|
|
+
|
|
|
+test('分隔符含非 -: 字符 → 报错', () => {
|
|
|
+ const content = `| A | B |
|
|
|
+|--x--|---|
|
|
|
+| 1 | 2 |`
|
|
|
+ const result = parseMarkdownTable(content)
|
|
|
+ assert.equal(result.ok, false)
|
|
|
+ assert.ok(result.error.includes('分隔符'))
|
|
|
+})
|