import Tokenizer from '..'; describe('MarkdownIt Comments plugin', function () { const tokenizer = new Tokenizer({ allowComments: true }); function parse(example) { const content = example.replace(/\n\s+/gm, '\n').trim(); return tokenizer.tokenize(content); } describe('inline comments', function () { const output = [ { type: 'paragraph_open' }, { type: 'inline', children: [ { type: 'text', content: 'this is a test ' }, { type: 'comment', content: 'example comment' }, { type: 'text', content: ' foo' }, ], }, { type: 'paragraph_close' }, ]; it('simple inline comment', function () { const example = parse(` this is a test foo `); expect(example).toDeepEqualSubset(output); }); it('inline comment with a newline', function () { const example = parse(` this is a test foo `); expect(example).toDeepEqualSubset(output); }); }); describe('block comments', function () { const output = [ { type: 'paragraph_open' }, { type: 'inline' }, { type: 'paragraph_close' }, { type: 'comment', content: 'example comment' }, { type: 'paragraph_open' }, { type: 'inline', content: 'foo' }, { type: 'paragraph_close' }, ]; it('simple block comment after a paragraph', function () { const example = parse(` this is a test foo `); expect(example).toDeepEqualSubset(output); }); it('block comment with ending on same line as content', function () { const example = parse(` this is a test foo `); expect(example).toDeepEqualSubset(output); }); it('block comment one one line', function () { const example = parse(` this is a test foo `); expect(example).toDeepEqualSubset(output); }); it('block comment across multiple lines with blank lines', function () { const actual = tokenizer.tokenize( ` foo bar `.trim() ); const expected = [ { type: 'paragraph_open' }, { type: 'inline', children: [{ type: 'text', content: 'foo bar' }, { type: 'paragraph_close' }, ]; expect(actual).toDeepEqualSubset(expected); }); }); });