tiptap/tests/cypress/integration/core/isActive.spec.ts
Dominik 8c6751f0c6
add precommit hook for linting and automatic eslint fixes + update eslint packages (#2862)
* chore: add precommit hook for eslint fixes, fix linting issues
* chore: add eslint import sort plugin
2022-06-08 14:10:25 +02:00

125 lines
2.9 KiB
TypeScript

/// <reference types="cypress" />
import { Editor } from '@tiptap/core'
import Color from '@tiptap/extension-color'
import Document from '@tiptap/extension-document'
import FontFamily from '@tiptap/extension-font-family'
import Paragraph from '@tiptap/extension-paragraph'
import Text from '@tiptap/extension-text'
import TextStyle from '@tiptap/extension-text-style'
describe('isActive', () => {
it('should check the current node', () => {
const editor = new Editor({
extensions: [
Document,
Paragraph,
Text,
],
})
expect(editor.isActive('paragraph')).to.eq(true)
})
it('should check non-existent nodes', () => {
const editor = new Editor({
extensions: [
Document,
Paragraph,
Text,
],
})
expect(editor.isActive('doesNotExist')).to.eq(false)
})
it('should check the current mark for correct values', () => {
const editor = new Editor({
extensions: [
Document,
Paragraph,
Text,
TextStyle,
FontFamily,
Color,
],
content: `
<p><span style="font-family: Inter">text</span></p>
`,
})
expect(editor.isActive('textStyle', { fontFamily: 'Inter' })).to.eq(true)
})
it('should check the current mark for false values', () => {
const editor = new Editor({
extensions: [
Document,
Paragraph,
Text,
TextStyle,
FontFamily,
Color,
],
content: `
<p><span style="font-family: Inter; color: red">text</span></p>
`,
})
expect(editor.isActive('textStyle', { fontFamily: 'Comic Sans' })).to.eq(false)
})
it('should check the current mark for any values', () => {
const editor = new Editor({
extensions: [
Document,
Paragraph,
Text,
TextStyle,
FontFamily,
],
content: `
<p><span style="font-family: Inter; color: red">text</span></p>
`,
})
expect(editor.isActive('textStyle', { fontFamily: /.*/ })).to.eq(true)
})
it('should check the current mark for correct values (multiple)', () => {
const editor = new Editor({
extensions: [
Document,
Paragraph,
Text,
TextStyle,
FontFamily,
Color,
],
content: `
<p><span style="font-family: Inter; color: red">text</span></p>
`,
})
expect(editor.isActive('textStyle', { fontFamily: 'Inter', color: 'red' })).to.eq(true)
})
it('should check the current mark for false values (multiple)', () => {
const editor = new Editor({
extensions: [
Document,
Paragraph,
Text,
TextStyle,
FontFamily,
Color,
],
content: `
<p><span style="font-family: Inter; color: red">text</span></p>
`,
})
expect(editor.isActive('textStyle', { fontFamily: 'Inter', color: 'green' })).to.eq(false)
})
})