`\n foo bar `
)
})
+
+ it('should NOT condense whitespaces in RCDATA text mode', () => {
+ const ast = baseParse(`<textarea>Text:\n foo</textarea>`, {
+ getTextMode: ({ tag }) =>
+ tag === 'textarea' ? TextModes.RCDATA : TextModes.DATA
+ })
+ const preElement = ast.children[0] as ElementNode
+ expect(preElement.children).toHaveLength(1)
+ expect((preElement.children[0] as TextNode).content).toBe(`Text:\n foo`)
+ })
})
describe('Errors', () => {
// Whitespace management for more efficient output
// (same as v2 whitespace: 'condense')
let removedWhitespace = false
- if (mode !== TextModes.RAWTEXT) {
+ if (mode !== TextModes.RAWTEXT && mode !== TextModes.RCDATA) {
for (let i = 0; i < nodes.length; i++) {
const node = nodes[i]
if (!context.inPre && node.type === NodeTypes.TEXT) {