|
1 | 1 | import {
|
2 | 2 | parseHeaders,
|
3 |
| - removeTailHtml, |
| 3 | + removeNonCodeWrappedHTML, |
4 | 4 | deeplyParseHeaders
|
5 | 5 | } from '@/util/parseHeaders'
|
6 | 6 |
|
@@ -32,15 +32,87 @@ describe('parseHeaders', () => {
|
32 | 32 | })
|
33 | 33 | })
|
34 | 34 |
|
35 |
| - test('should remove tail html correctly', () => { |
36 |
| - expect(removeTailHtml('# H1 <Comp></Comp>')).toBe('# H1') |
37 |
| - expect(removeTailHtml('# H1 <Comp a="b"></Comp>')).toBe('# H1') |
38 |
| - expect(removeTailHtml('# H1 <Comp/>')).toBe('# H1') |
39 |
| - expect(removeTailHtml('# H1 <Comp a="b"/>')).toBe('# H1') |
| 35 | + test('should remove non-code-wrapped html correctly', () => { |
| 36 | + const asserts = { |
| 37 | + // Remove tail html |
| 38 | + '# H1 <Comp></Comp>': '# H1 ', |
| 39 | + '# H1<Comp></Comp>': '# H1', |
| 40 | + '# H1 <Comp a="b"></Comp>': '# H1 ', |
| 41 | + '# H1<Comp a="b"></Comp>': '# H1', |
| 42 | + '# H1 <Comp/>': '# H1 ', |
| 43 | + '# H1<Comp/>': '# H1', |
| 44 | + '# H1 <Comp a="b"/>': '# H1 ', |
| 45 | + '# H1<Comp a="b"/>': '# H1', |
| 46 | + |
| 47 | + // Reserve code-wrapped tail html |
| 48 | + '# H1 `<Comp></Comp>`': '# H1 `<Comp></Comp>`', |
| 49 | + '# H1 `<Comp a="b"></Comp>`': '# H1 `<Comp a="b"></Comp>`', |
| 50 | + '# H1 `<Comp/>`': '# H1 `<Comp/>`', |
| 51 | + '# H1 `<Comp a="b"/>`': '# H1 `<Comp a="b"/>`', |
| 52 | + |
| 53 | + // Remove leading html |
| 54 | + '# <Comp></Comp> H1': '# H1', |
| 55 | + '# <Comp></Comp>H1': '# H1', |
| 56 | + '# <Comp a="b"></Comp> H1': '# H1', |
| 57 | + '# <Comp a="b"></Comp>H1': '# H1', |
| 58 | + '# <Comp/> H1': '# H1', |
| 59 | + '# <Comp/>H1': '# H1', |
| 60 | + '# <Comp a="b"/> H1': '# H1', |
| 61 | + '# <Comp a="b"/>H1': '# H1', |
| 62 | + |
| 63 | + // Reserve code-wrapped leading html |
| 64 | + '# `<Comp></Comp>` H1': '# `<Comp></Comp>` H1', |
| 65 | + '# `<Comp a="b"></Comp>` H1': '# `<Comp a="b"></Comp>` H1', |
| 66 | + '# `<Comp/>` H1': '# `<Comp/>` H1', |
| 67 | + '# `<Comp a="b"/>` H1': '# `<Comp a="b"/>` H1', |
| 68 | + |
| 69 | + // Remove middle html |
| 70 | + '# H1 <Comp></Comp> H2': '# H1 H2', |
| 71 | + '# H1 <Comp a="b"></Comp> H2': '# H1 H2', |
| 72 | + '# H1 <Comp/> H2': '# H1 H2', |
| 73 | + '# H1 <Comp a="b"/> H2': '# H1 H2', |
| 74 | + |
| 75 | + // Reserve code-wrapped middle html |
| 76 | + '# H1 `<Comp></Comp>` H2': '# H1 `<Comp></Comp>` H2', |
| 77 | + '# H1 `<Comp a="b"></Comp>` H2': '# H1 `<Comp a="b"></Comp>` H2', |
| 78 | + '# H1 `<Comp/>` H2': '# H1 `<Comp/>` H2', |
| 79 | + '# H1 `<Comp a="b"/>` H2': '# H1 `<Comp a="b"/>` H2' |
| 80 | + } |
| 81 | + |
| 82 | + Object.keys(asserts).forEach(input => { |
| 83 | + expect(removeNonCodeWrappedHTML(input)).toBe(asserts[input]) |
| 84 | + }) |
40 | 85 | })
|
41 | 86 |
|
42 | 87 | test('should deeplyParseHeaders transformed as expected', () => {
|
43 |
| - expect(deeplyParseHeaders('# `H1` <Comp></Comp>')).toBe('# H1') |
44 |
| - expect(deeplyParseHeaders('# *H1* <Comp/>')).toBe('# H1') |
| 88 | + const asserts = { |
| 89 | + // Remove tail html |
| 90 | + '# `H1` <Comp></Comp>': '# H1', |
| 91 | + '# *H1* <Comp/>': '# H1', |
| 92 | + |
| 93 | + // Reserve code-wrapped tail html |
| 94 | + '# `H1` `<Comp></Comp>`': '# H1 <Comp></Comp>', |
| 95 | + '# *H1* `<Comp/>`': '# H1 <Comp/>', |
| 96 | + |
| 97 | + // Remove leading html |
| 98 | + '# <Comp></Comp> `H1`': '# H1', |
| 99 | + '# <Comp/> *H1*': '# H1', |
| 100 | + |
| 101 | + // Reserve code-wrapped leading html |
| 102 | + '# `<Comp></Comp>` `H1`': '# <Comp></Comp> H1', |
| 103 | + '# `<Comp/>` *H1*': '# <Comp/> H1', |
| 104 | + |
| 105 | + // Remove middle html |
| 106 | + '# `H1` <Comp></Comp> `H2`': '# H1 H2', |
| 107 | + '# `H1` <Comp/> `H2`': '# H1 H2', |
| 108 | + |
| 109 | + // Reserve middle html |
| 110 | + '# `H1` `<Comp></Comp>` `H2`': '# H1 <Comp></Comp> H2', |
| 111 | + '# `H1` `<Comp/>` `H2`': '# H1 <Comp/> H2' |
| 112 | + } |
| 113 | + |
| 114 | + Object.keys(asserts).forEach(input => { |
| 115 | + expect(deeplyParseHeaders(input)).toBe(asserts[input]) |
| 116 | + }) |
45 | 117 | })
|
46 | 118 | })
|
0 commit comments