Skip to content

Commit

Permalink
add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
dmonad committed Jan 8, 2021
1 parent 6563286 commit 32b734b
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions tests/relativePositions.tests.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@

import * as Y from '../src/internals'
import * as t from 'lib0/testing.js'

/**
* @param {t.TestCase} tc
*/
export const testRelativePosition = tc => {
const ydoc = new Y.Doc()
const ytext = ydoc.getText()
ytext.insert(0, '1')
ytext.insert(0, 'abc')
ytext.insert(0, 'z')
ytext.insert(0, 'y')
ytext.insert(0, 'x')

// test if all positions are encoded and restored correctly
for (let i = 0; i < ytext.length; i++) {
// for all types of associations..
for (let assoc = -1; assoc < 2; assoc++) {
const rpos = Y.createRelativePositionFromTypeIndex(ytext, i, assoc)
const encodedRpos = Y.encodeRelativePosition(rpos)
const decodedRpos = Y.decodeRelativePosition(encodedRpos)
const absPos = /** @type {Y.AbsolutePosition} */ (Y.createAbsolutePositionFromRelativePosition(decodedRpos, ydoc))
t.assert(absPos.index === i)
t.assert(absPos.assoc === assoc)
}
}
}

0 comments on commit 32b734b

Please sign in to comment.