transform-position.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. var Delta = require('../../lib/delta');
  2. describe('transformPosition()', function () {
  3. it('insert before position', function () {
  4. var delta = new Delta().insert('A');
  5. expect(delta.transform(2)).toEqual(3);
  6. });
  7. it('insert after position', function () {
  8. var delta = new Delta().retain(2).insert('A');
  9. expect(delta.transform(1)).toEqual(1);
  10. });
  11. it('insert at position', function () {
  12. var delta = new Delta().retain(2).insert('A');
  13. expect(delta.transform(2, true)).toEqual(2);
  14. expect(delta.transform(2, false)).toEqual(3);
  15. });
  16. it('delete before position', function () {
  17. var delta = new Delta().delete(2);
  18. expect(delta.transform(4)).toEqual(2);
  19. });
  20. it('delete after position', function () {
  21. var delta = new Delta().retain(4).delete(2);
  22. expect(delta.transform(2)).toEqual(2);
  23. });
  24. it('delete across position', function () {
  25. var delta = new Delta().retain(1).delete(4);
  26. expect(delta.transform(2)).toEqual(1);
  27. });
  28. it('insert and delete before position', function () {
  29. var delta = new Delta().retain(2).insert('A').delete(2);
  30. expect(delta.transform(4)).toEqual(3);
  31. });
  32. it('insert before and delete across position', function () {
  33. var delta = new Delta().retain(2).insert('A').delete(4);
  34. expect(delta.transform(4)).toEqual(3);
  35. });
  36. it('delete before and delete across position', function () {
  37. var delta = new Delta().delete(1).retain(1).delete(4);
  38. expect(delta.transform(4)).toEqual(1);
  39. });
  40. });