fix formatting test case #326

This commit is contained in:
Kevin Jahns 2021-10-14 16:09:23 +02:00
parent f382846874
commit 085dda4cbd
2 changed files with 25 additions and 25 deletions

View File

@ -106,28 +106,3 @@ export const testDiffStateVectorOfUpdateIgnoresSkips = tc => {
t.assert(state.get(ydoc.clientID) === 1)
t.assert(state.size === 1)
}
/**
* Encode a document with a text and decode it into a new document. Then, test if
* the same change to both documents results in the same text deltas.
*
* @param {t.TestCase} tc
*/
export const testEncodeDecode = async tc => {
const ydoc1 = new Doc()
const ydoc2 = new Doc()
const text1 = ydoc1.getText()
text1.insert(0, "\n\n\n")
text1.format(0, 3, { url: 'http://example.com' });
applyUpdate(ydoc2, encodeStateAsUpdate(ydoc1))
ydoc1.getText().format(1, 1, { url: 'http://docs.yjs.dev' });
ydoc2.getText().format(1, 1, { url: 'http://docs.yjs.dev' });
const text2 = ydoc2.getText()
const expectedResult = [
{ insert: '\n', attributes: { url: 'http://example.com' } },
{ insert: '\n', attributes: { url: 'http://docs.yjs.dev' } },
{ insert: '\n', attributes: { url: 'http://example.com' } }
]
t.compare(text1.toDelta(), expectedResult)
t.compare(text1.toDelta(), text2.toDelta())
}

View File

@ -516,6 +516,31 @@ export const testSearchMarkerBug1 = tc => {
compare(users)
}
/**
* Reported in https://github.com/yjs/yjs/pull/32
*
* @param {t.TestCase} tc
*/
export const testFormattingBug = async tc => {
const ydoc1 = new Y.Doc()
const ydoc2 = new Y.Doc()
const text1 = ydoc1.getText()
text1.insert(0, '\n\n\n')
text1.format(0, 3, { url: 'http://example.com' })
ydoc1.getText().format(1, 1, { url: 'http://docs.yjs.dev' })
ydoc2.getText().format(1, 1, { url: 'http://docs.yjs.dev' })
Y.applyUpdate(ydoc2, Y.encodeStateAsUpdate(ydoc1))
const text2 = ydoc2.getText()
const expectedResult = [
{ insert: '\n', attributes: { url: 'http://example.com' } },
{ insert: '\n', attributes: { url: 'http://docs.yjs.dev' } },
{ insert: '\n', attributes: { url: 'http://example.com' } }
]
t.compare(text1.toDelta(), expectedResult)
t.compare(text1.toDelta(), text2.toDelta())
console.log(text1.toDelta())
}
// RANDOM TESTS
let charCounter = 0