mirror of
https://github.com/ianstormtaylor/slate.git
synced 2025-09-09 06:30:40 +02:00
* Update `isHistory` to match new interface. This change merely preserves the original functionality and does not add verification of Batch's new `selectionBefore` property. * Add changeset.
45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
import assert from 'assert'
|
|
import { fixtures } from '../../../support/fixtures'
|
|
import { createHyperscript } from 'slate-hyperscript'
|
|
import { History, withHistory } from '..'
|
|
|
|
describe('slate-history', () => {
|
|
fixtures(__dirname, 'undo', ({ module }) => {
|
|
const { input, run, output } = module
|
|
const editor = withTest(withHistory(input))
|
|
run(editor)
|
|
editor.undo()
|
|
assert.deepEqual(editor.children, output.children)
|
|
assert.deepEqual(editor.selection, output.selection)
|
|
})
|
|
|
|
fixtures(__dirname, 'isHistory', ({ module }) => {
|
|
const { input, run, output } = module
|
|
const editor = withTest(withHistory(input))
|
|
run(editor)
|
|
const result = History.isHistory(editor.history)
|
|
assert.strictEqual(result, output)
|
|
})
|
|
})
|
|
|
|
export const jsx = createHyperscript({
|
|
elements: {
|
|
block: {},
|
|
inline: { inline: true },
|
|
},
|
|
})
|
|
|
|
const withTest = editor => {
|
|
const { isInline, isVoid } = editor
|
|
|
|
editor.isInline = element => {
|
|
return element.inline === true ? true : isInline(element)
|
|
}
|
|
|
|
editor.isVoid = element => {
|
|
return element.void === true ? true : isVoid(element)
|
|
}
|
|
|
|
return editor
|
|
}
|