import { describe, expect, it } from 'vitest' import { setupTest } from '../testing/index.ts' describe('addTextColor', () => { it('can add color to text', () => { const { editor, n, m } = setupTest() const doc1 = n.doc( n.p('Hello world'), ) const doc2 = n.doc( n.p('Hello ', m.textColor({ color: 'red' }, 'world')), ) editor.set(doc1) editor.commands.addTextColor({ color: 'red' }) expect(editor.getDocJSON()).toEqual(doc2.toJSON()) }) it('can override existing color', () => { const { editor, n, m } = setupTest() const doc1 = n.doc( n.p( 'A', m.textColor({ color: 'red' }, 'BC'), m.textColor({ color: 'red' }, 'DE'), 'FG', ), ) const doc2 = n.doc( n.p( 'A', m.textColor({ color: 'red' }, 'B'), m.textColor({ color: 'blue' }, 'CDEF'), 'G', ), ) editor.set(doc1) editor.commands.addTextColor({ color: 'blue' }) expect(editor.getDocJSON()).toEqual(doc2.toJSON()) }) }) describe('removeColor', () => { it('can remove color from text', () => { const { editor, n, m } = setupTest() const doc1 = n.doc( n.p( 'A', m.textColor({ color: 'red' }, 'BC'), m.textColor({ color: 'blue' }, 'DE'), 'FG', ), ) const doc2 = n.doc( n.p( 'A', m.textColor({ color: 'red' }, 'B'), 'CDEFG', ), ) editor.set(doc1) editor.commands.removeTextColor() expect(editor.getDocJSON()).toEqual(doc2.toJSON()) }) })