import { convertHtmlToLines } from 'src/services/html_converter/html_line_converter.service.js'
const greentextHandle = new Set(['p', 'div'])
const mapOnlyText = (processor) => (input) => {
if (input.text && input.level.every(l => greentextHandle.has(l))) {
return processor(input.text)
} else if (input.text) {
return input.text
} else {
return input
}
}
describe('html_line_converter', () => {
describe('with processor that keeps original line should not make any changes to HTML when', () => {
const processorKeep = (line) => line
it('fed with regular HTML with newlines', () => {
const inputOutput = '1
2
3 4
5 \n 6 7
8
' const result = convertHtmlToLines(inputOutput) const comparableResult = result.map(mapOnlyText(processorKeep)).join('') expect(comparableResult).to.eql(inputOutput) }) it('fed with sorta valid HTML but tags aren\'t closed', () => { const inputOutput = 'just leaving a
p \nwithin
p!
and a3 4
5 \n 6 7
8
_
_\n__
_
' const output = '_
' const result = convertHtmlToLines(input) const comparableResult = result.map(mapOnlyText(processorReplace)).join('') expect(comparableResult).to.eql(output) }) it('fed with sorta valid HTML but tags aren\'t closed', () => { const input = 'just leaving a
p \nwithin
p!
and a_\n_
_
_> rei = "0"
'0'
> rei == 0
true
> rei == null
false
That, christian-like JS diagram but it’s evangelion instead.` const result = convertHtmlToLines(input) const comparableResult = result.map(mapOnlyText(processorReplace)).join('') expect(comparableResult).to.eql(input) }) it('Testing handling ignored blocks 2', () => { const input = `
An SSL error has happened.
Shakespeare
` const output = `An SSL error has happened.
_
` const result = convertHtmlToLines(input) const comparableResult = result.map(mapOnlyText(processorReplace)).join('') expect(comparableResult).to.eql(output) }) }) })