const { asyncTest } = require('./test-utils.js'); const MarkupToHtml = require('@joplin/renderer/MarkupToHtml').default; describe('MarkupToHtml', function() { it('should strip markup', asyncTest(async () => { const service = new MarkupToHtml(); const testCases = { [MarkupToHtml.MARKUP_LANGUAGE_MARKDOWN]: [ ['', ''], ['## hello', 'hello'], ['## hello **hello!**', 'hello hello!'], ['*hi!*', 'hi!'], ['Some `code` here', 'Some code here'], ['Some html here', 'Some html here'], ['Some & here', 'Some & here'], ['Some & here', 'Some & here'], ['[![image alt](:/fe9ea7fa727e4375b2e7d8a1b873314d)](https://example.com)', ''], ], [MarkupToHtml.MARKUP_LANGUAGE_HTML]: [ ['

hello

', 'hello'], ['Some strong text', 'Some strong text'], ['M&Ms', 'M&Ms'], ['', ''], ], }; for (const markup in testCases) { for (const t of testCases[markup]) { const input = t[0]; const expected = t[1]; const actual = service.stripMarkup(Number(markup), input); expect(actual).toBe(expected, `Markup: ${markup}`); } } expect(service.stripMarkup(1, 'one line\n\ntwo line', { collapseWhiteSpaces: true })).toBe('one line two line'); expect(service.stripMarkup(1, 'one line two line', { collapseWhiteSpaces: true })).toBe('one line two line'); expect(service.stripMarkup(1, 'one line\n two line', { collapseWhiteSpaces: true })).toBe('one line two line'); })); });