tiptap/tests/cypress/integration/html/generateJSON.spec.ts

57 lines
1.3 KiB
TypeScript
Raw Normal View History

/// <reference types="cypress" />
import Document from '@tiptap/extension-document'
import Paragraph from '@tiptap/extension-paragraph'
import Text from '@tiptap/extension-text'
import TextAlign from '@tiptap/extension-text-align'
import { generateJSON } from '@tiptap/html'
describe('generateJSON', () => {
it('generate JSON from HTML without an editor instance', () => {
const html = '<p>Example Text</p>'
const json = generateJSON(html, [
Document,
Paragraph,
Text,
])
expect(JSON.stringify(json)).to.eq(JSON.stringify({
type: 'doc',
content: [{
type: 'paragraph',
content: [{
type: 'text',
text: 'Example Text',
}],
}],
}))
})
// issue: https://github.com/ueberdosis/tiptap/issues/1601
it('generate JSON with style attributes', () => {
const html = '<p style="text-align: center;">Example Text</p>'
const json = generateJSON(html, [
Document,
Paragraph,
Text,
2021-07-20 19:01:54 +08:00
TextAlign.configure({ types: ['paragraph'] }),
])
expect(JSON.stringify(json)).to.eq(JSON.stringify({
type: 'doc',
content: [{
type: 'paragraph',
attrs: {
2021-07-20 19:01:54 +08:00
textAlign: 'center',
},
content: [{
type: 'text',
text: 'Example Text',
}],
}],
}))
})
})