mirror of https://github.com/vuejs/vitepress
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.9 KiB
58 lines
1.9 KiB
import { test, expect } from 'vitest'
|
|
import { removeNonCodeWrappedHTML } from 'node/utils/parseHeader'
|
|
|
|
test('removeNonCodeWrappedHTML', () => {
|
|
const asserts: Record<string, string> = {
|
|
// Remove tail html
|
|
'# H1 <Comp></Comp>': '# H1 ',
|
|
'# H1<Comp></Comp>': '# H1',
|
|
'# H1 <Comp a="b"></Comp>': '# H1 ',
|
|
'# H1<Comp a="b"></Comp>': '# H1',
|
|
'# H1 <Comp/>': '# H1 ',
|
|
'# H1<Comp/>': '# H1',
|
|
'# H1 <Comp a="b"/>': '# H1 ',
|
|
'# H1<Comp a="b"/>': '# H1',
|
|
|
|
// Reserve code-wrapped tail html
|
|
'# H1 `<Comp></Comp>`': '# H1 `<Comp></Comp>`',
|
|
'# H1 `<Comp a="b"></Comp>`': '# H1 `<Comp a="b"></Comp>`',
|
|
'# H1 `<Comp/>`': '# H1 `<Comp/>`',
|
|
'# H1 `<Comp a="b"/>`': '# H1 `<Comp a="b"/>`',
|
|
|
|
// Remove leading html
|
|
'# <Comp></Comp> H1': '# H1',
|
|
'# <Comp></Comp>H1': '# H1',
|
|
'# <Comp a="b"></Comp> H1': '# H1',
|
|
'# <Comp a="b"></Comp>H1': '# H1',
|
|
'# <Comp/> H1': '# H1',
|
|
'# <Comp/>H1': '# H1',
|
|
'# <Comp a="b"/> H1': '# H1',
|
|
'# <Comp a="b"/>H1': '# H1',
|
|
|
|
// Reserve code-wrapped leading html
|
|
'# `<Comp></Comp>` H1': '# `<Comp></Comp>` H1',
|
|
'# `<Comp a="b"></Comp>` H1': '# `<Comp a="b"></Comp>` H1',
|
|
'# `<Comp/>` H1': '# `<Comp/>` H1',
|
|
'# `<Comp a="b"/>` H1': '# `<Comp a="b"/>` H1',
|
|
|
|
// Remove middle html
|
|
'# H1 <Comp></Comp> H2': '# H1 H2',
|
|
'# H1 <Comp a="b"></Comp> H2': '# H1 H2',
|
|
'# H1 <Comp/> H2': '# H1 H2',
|
|
'# H1 <Comp a="b"/> H2': '# H1 H2',
|
|
|
|
// Reserve code-wrapped middle html
|
|
'# H1 `<Comp></Comp>` H2': '# H1 `<Comp></Comp>` H2',
|
|
'# H1 `<Comp a="b"></Comp>` H2': '# H1 `<Comp a="b"></Comp>` H2',
|
|
'# H1 `<Comp/>` H2': '# H1 `<Comp/>` H2',
|
|
'# H1 `<Comp a="b"/>` H2': '# H1 `<Comp a="b"/>` H2',
|
|
|
|
// vuepress #2688
|
|
'# \\<ins>': '# \\<ins>'
|
|
}
|
|
|
|
Object.keys(asserts).forEach((input) => {
|
|
expect(removeNonCodeWrappedHTML(input)).toBe(asserts[input])
|
|
})
|
|
})
|