const { escapeHtmlCharacters } = require('browser/lib/utils') const test = require('ava') test('escapeHtmlCharacters should return the original string if nothing needed to escape', t => { const input = 'Nothing to be escaped' const expected = 'Nothing to be escaped' const actual = escapeHtmlCharacters(input) t.is(actual, expected) }) test('escapeHtmlCharacters should skip code block if that option is enabled', t => { const input = ` ` const expected = ` <escapeMe>` const actual = escapeHtmlCharacters(input, { detectCodeBlock: true }) t.is(actual, expected) }) test('escapeHtmlCharacters should NOT skip character not in code block but start with 4 spaces', t => { const input = '4 spaces &' const expected = '4 spaces &' const actual = escapeHtmlCharacters(input, { detectCodeBlock: true }) t.is(actual, expected) }) test('escapeHtmlCharacters should NOT skip code block if that option is NOT enabled', t => { const input = ` ` const expected = ` <no escape> <escapeMe>` const actual = escapeHtmlCharacters(input) t.is(actual, expected) }) test("escapeHtmlCharacters should NOT escape & character if it's a part of an escaped character", t => { const input = 'Do not escape & or " but do escape &' const expected = 'Do not escape & or " but do escape &' const actual = escapeHtmlCharacters(input) t.is(actual, expected) }) test('escapeHtmlCharacters should skip char if in code block', t => { const input = ` \`\`\` \`\`\` dasdasd dasdasdasd \`\`\` \`\`\` ` const expected = ` \`\`\` \`\`\` das<das>dasd dasdasdasd \`\`\` \`\`\` ` const actual = escapeHtmlCharacters(input, { detectCodeBlock: true }) t.is(actual, expected) }) test('escapeHtmlCharacters should return the correct result', t => { const input = '& < > " \'' const expected = '& < > " '' const actual = escapeHtmlCharacters(input) t.is(actual, expected) })