mirror of
https://github.com/yjs/yjs.git
synced 2025-12-16 11:47:46 +01:00
80 lines
2.1 KiB
JavaScript
80 lines
2.1 KiB
JavaScript
import * as t from 'lib0/testing'
|
|
import * as delta from '../src/utils/Delta.js'
|
|
|
|
/**
|
|
* @param {t.TestCase} _tc
|
|
*/
|
|
export const testDelta = _tc => {
|
|
const d = delta.createTextDelta().insert('hello').insert(' ').useAttributes({ bold: true }).insert('world').useAttribution({ insert: ['tester'] }).insert('!').done()
|
|
t.compare(d.toJSON(), [{ insert: 'hello ' }, { insert: 'world', attributes: { bold: true } }, { insert: '!', attributes: { bold: true }, attribution: { insert: ['tester'] } }])
|
|
}
|
|
|
|
/**
|
|
* @param {t.TestCase} _tc
|
|
*/
|
|
export const testDeltaMerging = _tc => {
|
|
const d = delta.createTextDelta()
|
|
.insert('hello')
|
|
.insert('world')
|
|
.insert(' ', { italic: true })
|
|
.insert({})
|
|
.insert([1])
|
|
.insert([2])
|
|
.done()
|
|
t.compare(d.toJSON(), [{ insert: 'helloworld' }, { insert: ' ', attributes: { italic: true } }, { insert: {} }, { insert: [1, 2] }])
|
|
}
|
|
|
|
/**
|
|
* @param {t.TestCase} _tc
|
|
*/
|
|
export const testUseAttributes = _tc => {
|
|
const d = delta.createTextDelta()
|
|
.insert('a')
|
|
.updateUsedAttributes('bold', true)
|
|
.insert('b')
|
|
.insert('c', { bold: 4 })
|
|
.updateUsedAttributes('bold', null)
|
|
.insert('d')
|
|
.useAttributes({ italic: true })
|
|
.insert('e')
|
|
.useAttributes(null)
|
|
.insert('f')
|
|
.done()
|
|
const d2 = delta.createTextDelta()
|
|
.insert('a')
|
|
.insert('b', { bold: true })
|
|
.insert('c', { bold: 4 })
|
|
.insert('d')
|
|
.insert('e', { italic: true })
|
|
.insert('f')
|
|
.done()
|
|
t.compare(d, d2)
|
|
}
|
|
|
|
/**
|
|
* @param {t.TestCase} _tc
|
|
*/
|
|
export const testUseAttribution = _tc => {
|
|
const d = delta.createTextDelta()
|
|
.insert('a')
|
|
.updateUsedAttribution('insert', ['me'])
|
|
.insert('b')
|
|
.insert('c', null, { insert: ['you'] })
|
|
.updateUsedAttribution('insert', null)
|
|
.insert('d')
|
|
.useAttribution({ insert: ['me'] })
|
|
.insert('e')
|
|
.useAttribution(null)
|
|
.insert('f')
|
|
.done()
|
|
const d2 = delta.createTextDelta()
|
|
.insert('a')
|
|
.insert('b', null, { insert: ['me'] })
|
|
.insert('c', null, { insert: ['you'] })
|
|
.insert('d')
|
|
.insert('e', null, { insert: ['me'] })
|
|
.insert('f')
|
|
.done()
|
|
t.compare(d, d2)
|
|
}
|