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]) }) })