@fluidframework/merge-tree 2.30.0 → 2.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +403 -399
- package/api-report/merge-tree.legacy.alpha.api.md +1 -0
- package/dist/MergeTreeTextHelper.d.ts +9 -3
- package/dist/MergeTreeTextHelper.d.ts.map +1 -1
- package/dist/MergeTreeTextHelper.js +5 -5
- package/dist/MergeTreeTextHelper.js.map +1 -1
- package/dist/client.d.ts +7 -13
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +136 -110
- package/dist/client.js.map +1 -1
- package/dist/endOfTreeSegment.d.ts +12 -8
- package/dist/endOfTreeSegment.d.ts.map +1 -1
- package/dist/endOfTreeSegment.js +2 -4
- package/dist/endOfTreeSegment.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/mergeTree.d.ts +37 -23
- package/dist/mergeTree.d.ts.map +1 -1
- package/dist/mergeTree.js +400 -483
- package/dist/mergeTree.js.map +1 -1
- package/dist/mergeTreeDeltaCallback.d.ts +4 -8
- package/dist/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/dist/mergeTreeDeltaCallback.js.map +1 -1
- package/dist/mergeTreeNodes.d.ts +32 -10
- package/dist/mergeTreeNodes.d.ts.map +1 -1
- package/dist/mergeTreeNodes.js +43 -28
- package/dist/mergeTreeNodes.js.map +1 -1
- package/dist/partialLengths.d.ts +2 -2
- package/dist/partialLengths.d.ts.map +1 -1
- package/dist/partialLengths.js +181 -109
- package/dist/partialLengths.js.map +1 -1
- package/dist/perspective.d.ts +8 -27
- package/dist/perspective.d.ts.map +1 -1
- package/dist/perspective.js +7 -67
- package/dist/perspective.js.map +1 -1
- package/dist/revertibles.d.ts.map +1 -1
- package/dist/revertibles.js +2 -2
- package/dist/revertibles.js.map +1 -1
- package/dist/segmentInfos.d.ts +20 -106
- package/dist/segmentInfos.d.ts.map +1 -1
- package/dist/segmentInfos.js +28 -42
- package/dist/segmentInfos.js.map +1 -1
- package/dist/segmentPropertiesManager.d.ts +1 -14
- package/dist/segmentPropertiesManager.d.ts.map +1 -1
- package/dist/segmentPropertiesManager.js +3 -17
- package/dist/segmentPropertiesManager.js.map +1 -1
- package/dist/snapshotLoader.d.ts.map +1 -1
- package/dist/snapshotLoader.js +62 -19
- package/dist/snapshotLoader.js.map +1 -1
- package/dist/snapshotV1.d.ts.map +1 -1
- package/dist/snapshotV1.js +55 -24
- package/dist/snapshotV1.js.map +1 -1
- package/dist/snapshotlegacy.d.ts.map +1 -1
- package/dist/snapshotlegacy.js +6 -9
- package/dist/snapshotlegacy.js.map +1 -1
- package/dist/stamps.d.ts +1 -1
- package/dist/stamps.js +1 -1
- package/dist/stamps.js.map +1 -1
- package/dist/test/Insertion.perf.spec.js +6 -51
- package/dist/test/Insertion.perf.spec.js.map +1 -1
- package/dist/test/PartialLengths.perf.spec.js +18 -25
- package/dist/test/PartialLengths.perf.spec.js.map +1 -1
- package/dist/test/Removal.perf.spec.js +13 -41
- package/dist/test/Removal.perf.spec.js.map +1 -1
- package/dist/test/beastTest.spec.d.ts.map +1 -1
- package/dist/test/beastTest.spec.js +41 -66
- package/dist/test/beastTest.spec.js.map +1 -1
- package/dist/test/client.annotateMarker.spec.js +1 -11
- package/dist/test/client.annotateMarker.spec.js.map +1 -1
- package/dist/test/client.applyMsg.spec.js +14 -14
- package/dist/test/client.applyMsg.spec.js.map +1 -1
- package/dist/test/client.getPosition.spec.js +1 -1
- package/dist/test/client.getPosition.spec.js.map +1 -1
- package/dist/test/client.localReference.spec.js +1 -1
- package/dist/test/client.localReference.spec.js.map +1 -1
- package/dist/test/client.rollback.spec.js +49 -58
- package/dist/test/client.rollback.spec.js.map +1 -1
- package/dist/test/client.rollbackFarm.spec.js +1 -1
- package/dist/test/client.rollbackFarm.spec.js.map +1 -1
- package/dist/test/client.searchForMarker.spec.js +4 -21
- package/dist/test/client.searchForMarker.spec.js.map +1 -1
- package/dist/test/index.d.ts +2 -2
- package/dist/test/index.d.ts.map +1 -1
- package/dist/test/index.js +2 -6
- package/dist/test/index.js.map +1 -1
- package/dist/test/mergeTree.annotate.deltaCallback.spec.js +14 -59
- package/dist/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
- package/dist/test/mergeTree.annotate.spec.js +47 -63
- package/dist/test/mergeTree.annotate.spec.js.map +1 -1
- package/dist/test/mergeTree.insert.deltaCallback.spec.js +9 -62
- package/dist/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
- package/dist/test/mergeTree.insertingWalk.spec.js +59 -125
- package/dist/test/mergeTree.insertingWalk.spec.js.map +1 -1
- package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +12 -93
- package/dist/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
- package/dist/test/mergeTree.markRangeRemoved.spec.js +10 -7
- package/dist/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
- package/dist/test/mergeTree.walk.spec.js +2 -14
- package/dist/test/mergeTree.walk.spec.js.map +1 -1
- package/dist/test/mergeTreeOperationRunner.js +2 -2
- package/dist/test/mergeTreeOperationRunner.js.map +1 -1
- package/dist/test/obliterate.concurrent.spec.js +18 -23
- package/dist/test/obliterate.concurrent.spec.js.map +1 -1
- package/dist/test/obliterate.partialLength.spec.js +166 -136
- package/dist/test/obliterate.partialLength.spec.js.map +1 -1
- package/dist/test/obliterate.spec.js +16 -126
- package/dist/test/obliterate.spec.js.map +1 -1
- package/dist/test/partialLength.spec.js +28 -196
- package/dist/test/partialLength.spec.js.map +1 -1
- package/dist/test/perspective.spec.js +34 -0
- package/dist/test/perspective.spec.js.map +1 -1
- package/dist/test/propertyManager.spec.js +1 -1
- package/dist/test/propertyManager.spec.js.map +1 -1
- package/dist/test/resetPendingSegmentsToOp.spec.js +0 -2
- package/dist/test/resetPendingSegmentsToOp.spec.js.map +1 -1
- package/dist/test/segmentGroupCollection.spec.js +10 -4
- package/dist/test/segmentGroupCollection.spec.js.map +1 -1
- package/dist/test/testClient.d.ts +1 -0
- package/dist/test/testClient.d.ts.map +1 -1
- package/dist/test/testClient.js +16 -26
- package/dist/test/testClient.js.map +1 -1
- package/dist/test/testClientLogger.d.ts.map +1 -1
- package/dist/test/testClientLogger.js +3 -10
- package/dist/test/testClientLogger.js.map +1 -1
- package/dist/test/testServer.d.ts +2 -1
- package/dist/test/testServer.d.ts.map +1 -1
- package/dist/test/testServer.js +7 -5
- package/dist/test/testServer.js.map +1 -1
- package/dist/test/testUtils.d.ts +36 -56
- package/dist/test/testUtils.d.ts.map +1 -1
- package/dist/test/testUtils.js +68 -77
- package/dist/test/testUtils.js.map +1 -1
- package/dist/test/text.d.ts +2 -2
- package/dist/test/text.d.ts.map +1 -1
- package/dist/test/text.js +5 -2
- package/dist/test/text.js.map +1 -1
- package/dist/textSegment.d.ts +0 -6
- package/dist/textSegment.d.ts.map +1 -1
- package/dist/textSegment.js.map +1 -1
- package/dist/zamboni.d.ts.map +1 -1
- package/dist/zamboni.js +53 -26
- package/dist/zamboni.js.map +1 -1
- package/lib/MergeTreeTextHelper.d.ts +9 -3
- package/lib/MergeTreeTextHelper.d.ts.map +1 -1
- package/lib/MergeTreeTextHelper.js +5 -5
- package/lib/MergeTreeTextHelper.js.map +1 -1
- package/lib/client.d.ts +7 -13
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +117 -116
- package/lib/client.js.map +1 -1
- package/lib/endOfTreeSegment.d.ts +12 -8
- package/lib/endOfTreeSegment.d.ts.map +1 -1
- package/lib/endOfTreeSegment.js +2 -4
- package/lib/endOfTreeSegment.js.map +1 -1
- package/lib/index.d.ts +6 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/mergeTree.d.ts +37 -23
- package/lib/mergeTree.d.ts.map +1 -1
- package/lib/mergeTree.js +381 -488
- package/lib/mergeTree.js.map +1 -1
- package/lib/mergeTreeDeltaCallback.d.ts +4 -8
- package/lib/mergeTreeDeltaCallback.d.ts.map +1 -1
- package/lib/mergeTreeDeltaCallback.js.map +1 -1
- package/lib/mergeTreeNodes.d.ts +32 -10
- package/lib/mergeTreeNodes.d.ts.map +1 -1
- package/lib/mergeTreeNodes.js +42 -29
- package/lib/mergeTreeNodes.js.map +1 -1
- package/lib/partialLengths.d.ts +2 -2
- package/lib/partialLengths.d.ts.map +1 -1
- package/lib/partialLengths.js +160 -111
- package/lib/partialLengths.js.map +1 -1
- package/lib/perspective.d.ts +8 -27
- package/lib/perspective.d.ts.map +1 -1
- package/lib/perspective.js +8 -68
- package/lib/perspective.js.map +1 -1
- package/lib/revertibles.d.ts.map +1 -1
- package/lib/revertibles.js +2 -2
- package/lib/revertibles.js.map +1 -1
- package/lib/segmentInfos.d.ts +20 -106
- package/lib/segmentInfos.d.ts.map +1 -1
- package/lib/segmentInfos.js +26 -37
- package/lib/segmentInfos.js.map +1 -1
- package/lib/segmentPropertiesManager.d.ts +1 -14
- package/lib/segmentPropertiesManager.d.ts.map +1 -1
- package/lib/segmentPropertiesManager.js +2 -16
- package/lib/segmentPropertiesManager.js.map +1 -1
- package/lib/snapshotLoader.d.ts.map +1 -1
- package/lib/snapshotLoader.js +39 -19
- package/lib/snapshotLoader.js.map +1 -1
- package/lib/snapshotV1.d.ts.map +1 -1
- package/lib/snapshotV1.js +34 -26
- package/lib/snapshotV1.js.map +1 -1
- package/lib/snapshotlegacy.d.ts.map +1 -1
- package/lib/snapshotlegacy.js +7 -10
- package/lib/snapshotlegacy.js.map +1 -1
- package/lib/stamps.d.ts +1 -1
- package/lib/stamps.js +1 -1
- package/lib/stamps.js.map +1 -1
- package/lib/test/Insertion.perf.spec.js +6 -51
- package/lib/test/Insertion.perf.spec.js.map +1 -1
- package/lib/test/PartialLengths.perf.spec.js +18 -25
- package/lib/test/PartialLengths.perf.spec.js.map +1 -1
- package/lib/test/Removal.perf.spec.js +13 -41
- package/lib/test/Removal.perf.spec.js.map +1 -1
- package/lib/test/beastTest.spec.d.ts.map +1 -1
- package/lib/test/beastTest.spec.js +42 -67
- package/lib/test/beastTest.spec.js.map +1 -1
- package/lib/test/client.annotateMarker.spec.js +1 -11
- package/lib/test/client.annotateMarker.spec.js.map +1 -1
- package/lib/test/client.applyMsg.spec.js +14 -14
- package/lib/test/client.applyMsg.spec.js.map +1 -1
- package/lib/test/client.getPosition.spec.js +1 -1
- package/lib/test/client.getPosition.spec.js.map +1 -1
- package/lib/test/client.localReference.spec.js +1 -1
- package/lib/test/client.localReference.spec.js.map +1 -1
- package/lib/test/client.rollback.spec.js +50 -59
- package/lib/test/client.rollback.spec.js.map +1 -1
- package/lib/test/client.rollbackFarm.spec.js +1 -1
- package/lib/test/client.rollbackFarm.spec.js.map +1 -1
- package/lib/test/client.searchForMarker.spec.js +4 -21
- package/lib/test/client.searchForMarker.spec.js.map +1 -1
- package/lib/test/index.d.ts +2 -2
- package/lib/test/index.d.ts.map +1 -1
- package/lib/test/index.js +1 -1
- package/lib/test/index.js.map +1 -1
- package/lib/test/mergeTree.annotate.deltaCallback.spec.js +15 -60
- package/lib/test/mergeTree.annotate.deltaCallback.spec.js.map +1 -1
- package/lib/test/mergeTree.annotate.spec.js +48 -64
- package/lib/test/mergeTree.annotate.spec.js.map +1 -1
- package/lib/test/mergeTree.insert.deltaCallback.spec.js +10 -63
- package/lib/test/mergeTree.insert.deltaCallback.spec.js.map +1 -1
- package/lib/test/mergeTree.insertingWalk.spec.js +61 -127
- package/lib/test/mergeTree.insertingWalk.spec.js.map +1 -1
- package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js +13 -94
- package/lib/test/mergeTree.markRangeRemoved.deltaCallback.spec.js.map +1 -1
- package/lib/test/mergeTree.markRangeRemoved.spec.js +10 -7
- package/lib/test/mergeTree.markRangeRemoved.spec.js.map +1 -1
- package/lib/test/mergeTree.walk.spec.js +2 -14
- package/lib/test/mergeTree.walk.spec.js.map +1 -1
- package/lib/test/mergeTreeOperationRunner.js +3 -3
- package/lib/test/mergeTreeOperationRunner.js.map +1 -1
- package/lib/test/obliterate.concurrent.spec.js +18 -23
- package/lib/test/obliterate.concurrent.spec.js.map +1 -1
- package/lib/test/obliterate.partialLength.spec.js +167 -137
- package/lib/test/obliterate.partialLength.spec.js.map +1 -1
- package/lib/test/obliterate.spec.js +17 -127
- package/lib/test/obliterate.spec.js.map +1 -1
- package/lib/test/partialLength.spec.js +29 -197
- package/lib/test/partialLength.spec.js.map +1 -1
- package/lib/test/perspective.spec.js +34 -0
- package/lib/test/perspective.spec.js.map +1 -1
- package/lib/test/propertyManager.spec.js +2 -2
- package/lib/test/propertyManager.spec.js.map +1 -1
- package/lib/test/resetPendingSegmentsToOp.spec.js +0 -2
- package/lib/test/resetPendingSegmentsToOp.spec.js.map +1 -1
- package/lib/test/segmentGroupCollection.spec.js +10 -4
- package/lib/test/segmentGroupCollection.spec.js.map +1 -1
- package/lib/test/testClient.d.ts +1 -0
- package/lib/test/testClient.d.ts.map +1 -1
- package/lib/test/testClient.js +18 -28
- package/lib/test/testClient.js.map +1 -1
- package/lib/test/testClientLogger.d.ts.map +1 -1
- package/lib/test/testClientLogger.js +3 -10
- package/lib/test/testClientLogger.js.map +1 -1
- package/lib/test/testServer.d.ts +2 -1
- package/lib/test/testServer.d.ts.map +1 -1
- package/lib/test/testServer.js +7 -5
- package/lib/test/testServer.js.map +1 -1
- package/lib/test/testUtils.d.ts +36 -56
- package/lib/test/testUtils.d.ts.map +1 -1
- package/lib/test/testUtils.js +66 -48
- package/lib/test/testUtils.js.map +1 -1
- package/lib/test/text.d.ts +2 -2
- package/lib/test/text.d.ts.map +1 -1
- package/lib/test/text.js +6 -3
- package/lib/test/text.js.map +1 -1
- package/lib/textSegment.d.ts +0 -6
- package/lib/textSegment.d.ts.map +1 -1
- package/lib/textSegment.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/lib/zamboni.d.ts.map +1 -1
- package/lib/zamboni.js +32 -28
- package/lib/zamboni.js.map +1 -1
- package/package.json +17 -20
- package/src/MergeTreeTextHelper.ts +17 -12
- package/src/client.ts +141 -197
- package/src/endOfTreeSegment.ts +11 -8
- package/src/index.ts +4 -3
- package/src/mergeTree.ts +482 -633
- package/src/mergeTreeDeltaCallback.ts +4 -8
- package/src/mergeTreeNodes.ts +66 -45
- package/src/partialLengths.ts +181 -137
- package/src/perspective.ts +17 -95
- package/src/revertibles.ts +2 -7
- package/src/segmentInfos.ts +48 -141
- package/src/segmentPropertiesManager.ts +2 -16
- package/src/snapshotLoader.ts +62 -30
- package/src/snapshotV1.ts +36 -28
- package/src/snapshotlegacy.ts +7 -16
- package/src/stamps.ts +1 -1
- package/src/textSegment.ts +0 -13
- package/src/zamboni.ts +38 -32
- package/tsconfig.json +1 -0
- package/prettier.config.cjs +0 -8
|
@@ -323,13 +323,13 @@ for (const incremental of [true, false]) {
|
|
|
323
323
|
node_assert_1.strict.equal(helper.clients.C.getText(), "B");
|
|
324
324
|
helper.logger.validate();
|
|
325
325
|
});
|
|
326
|
-
it("clones
|
|
326
|
+
it("clones removes array during insert", () => {
|
|
327
327
|
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
328
328
|
// the bug found here:
|
|
329
329
|
// the X was skipped over by client `A` because it had already been
|
|
330
330
|
// deleted, so its length at refSeq was 0
|
|
331
331
|
//
|
|
332
|
-
// this was due to the
|
|
332
|
+
// this was due to the removes array not being properly cloned
|
|
333
333
|
// when marking obliterated during insert
|
|
334
334
|
helper.insertText("C", 0, "ABCD");
|
|
335
335
|
helper.processAllOps();
|
|
@@ -540,7 +540,7 @@ for (const incremental of [true, false]) {
|
|
|
540
540
|
node_assert_1.strict.equal(helper.clients.B.getText(), "43FBD");
|
|
541
541
|
helper.logger.validate();
|
|
542
542
|
});
|
|
543
|
-
it("ignores segments
|
|
543
|
+
it("ignores segments obliterated at insertion time for partial len calculations", () => {
|
|
544
544
|
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
545
545
|
helper.insertText("B", 0, "ABC");
|
|
546
546
|
helper.insertText("A", 0, "DEF");
|
|
@@ -608,9 +608,8 @@ for (const incremental of [true, false]) {
|
|
|
608
608
|
helper.processAllOps();
|
|
609
609
|
helper.logger.validate();
|
|
610
610
|
helper.obliterateRange("B", 1, 2);
|
|
611
|
-
// bug here: because segment A has already been obliterated, we wouldn't
|
|
612
|
-
// mark it obliterated by this op as well
|
|
613
|
-
// this range would look to the right and not find a matching move seq
|
|
611
|
+
// bug here: because segment A has already been obliterated, we previously wouldn't
|
|
612
|
+
// mark it obliterated by this op as well
|
|
614
613
|
helper.obliterateRange("A", 0, 2);
|
|
615
614
|
helper.insertText("B", 1, "C");
|
|
616
615
|
helper.processAllOps();
|
|
@@ -681,7 +680,7 @@ for (const incremental of [true, false]) {
|
|
|
681
680
|
helper.processAllOps();
|
|
682
681
|
helper.logger.validate();
|
|
683
682
|
// bug here: when the op is acked by client C, it would incorrectly give
|
|
684
|
-
// segment B the same
|
|
683
|
+
// segment B the same obliterate information despite coming from a different op
|
|
685
684
|
helper.obliterateRange("C", 0, 2);
|
|
686
685
|
helper.insertText("B", 2, "D");
|
|
687
686
|
helper.obliterateRange("C", 0, 1);
|
|
@@ -728,7 +727,7 @@ for (const incremental of [true, false]) {
|
|
|
728
727
|
node_assert_1.strict.equal(helper.clients.C.getText(), "C");
|
|
729
728
|
helper.logger.validate();
|
|
730
729
|
});
|
|
731
|
-
it("applies correct
|
|
730
|
+
it("applies correct obliterate when right segment has multiple obliterates", () => {
|
|
732
731
|
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
733
732
|
// AB
|
|
734
733
|
// (A-C-D-(B))
|
|
@@ -737,10 +736,8 @@ for (const incremental of [true, false]) {
|
|
|
737
736
|
helper.logger.validate();
|
|
738
737
|
helper.obliterateRange("A", 1, 2);
|
|
739
738
|
helper.obliterateRange("B", 0, 2);
|
|
740
|
-
// bug here: for client B, segment B had multiple
|
|
741
|
-
//
|
|
742
|
-
// array, it selected the lowest seq in the array, which differed from
|
|
743
|
-
// the correct and matching movedSeq
|
|
739
|
+
// bug here: for client B, segment B had multiple obliterates and
|
|
740
|
+
// the wrong one was selected
|
|
744
741
|
helper.insertText("A", 1, "C");
|
|
745
742
|
helper.insertText("A", 2, "D");
|
|
746
743
|
helper.processAllOps();
|
|
@@ -749,7 +746,7 @@ for (const incremental of [true, false]) {
|
|
|
749
746
|
node_assert_1.strict.equal(helper.clients.C.getText(), "");
|
|
750
747
|
helper.logger.validate();
|
|
751
748
|
});
|
|
752
|
-
it("takes the correct
|
|
749
|
+
it("takes the correct remove clientId/stamp when multiple obliterates apply", () => {
|
|
753
750
|
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
754
751
|
// AB
|
|
755
752
|
// (A-C-D-(B))
|
|
@@ -758,8 +755,7 @@ for (const incremental of [true, false]) {
|
|
|
758
755
|
helper.logger.validate();
|
|
759
756
|
helper.obliterateRange("A", 1, 2);
|
|
760
757
|
// bug here: we would incorrectly take the client id of the first element
|
|
761
|
-
// in the
|
|
762
|
-
// length of _both_ the local and non-local movedSeqs arrays
|
|
758
|
+
// in the removes array
|
|
763
759
|
helper.insertText("A", 1, "C");
|
|
764
760
|
helper.obliterateRange("C", 0, 2);
|
|
765
761
|
helper.insertText("A", 2, "D");
|
|
@@ -816,7 +812,7 @@ for (const incremental of [true, false]) {
|
|
|
816
812
|
node_assert_1.strict.equal(helper.clients.C.getText(), "FGHIJE12345AKB");
|
|
817
813
|
helper.logger.validate();
|
|
818
814
|
});
|
|
819
|
-
it("tracks length at seq of lower
|
|
815
|
+
it("tracks length at seq of lower remove seq when overlapping", () => {
|
|
820
816
|
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
821
817
|
// H-FG-A-CDE-B
|
|
822
818
|
// (H-F-[G-A)-C-I-D]-E-B
|
|
@@ -830,8 +826,8 @@ for (const incremental of [true, false]) {
|
|
|
830
826
|
helper.removeRange("B", 2, 6);
|
|
831
827
|
// bug here: this insert triggers a new chunk to be created. when the
|
|
832
828
|
// partial lengths of the new chunk were calculated, it incorrectly
|
|
833
|
-
// used
|
|
834
|
-
//
|
|
829
|
+
// used a removal seq other than the earliest removal, causing its computed length
|
|
830
|
+
// to be incorrect
|
|
835
831
|
helper.insertText("A", 1, "I");
|
|
836
832
|
helper.processAllOps();
|
|
837
833
|
node_assert_1.strict.equal(helper.clients.A.getText(), "IEB");
|
|
@@ -878,8 +874,7 @@ for (const incremental of [true, false]) {
|
|
|
878
874
|
helper.logger.validate();
|
|
879
875
|
helper.removeRange("C", 6, 7);
|
|
880
876
|
helper.insertText("A", 7, "2");
|
|
881
|
-
// obliterate at seq 5
|
|
882
|
-
// at the removed segment, which doesn't have move info
|
|
877
|
+
// Bug was here: obliterate at seq 5 wasn't getting acked correctly
|
|
883
878
|
helper.obliterateRange("C", 5, 7);
|
|
884
879
|
helper.processAllOps();
|
|
885
880
|
helper.logger.validate();
|
|
@@ -944,7 +939,7 @@ for (const incremental of [true, false]) {
|
|
|
944
939
|
node_assert_1.strict.equal(helper.clients.A.getText(), "FZGBA");
|
|
945
940
|
helper.logger.validate();
|
|
946
941
|
});
|
|
947
|
-
it("
|
|
942
|
+
it("wasRemovedOnInsert computation remains accurate after leaf node is split", () => {
|
|
948
943
|
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
949
944
|
// CD-B-A
|
|
950
945
|
// I-(C-(G)H-E)-F-D-B-A
|
|
@@ -1016,7 +1011,7 @@ for (const incremental of [true, false]) {
|
|
|
1016
1011
|
node_assert_1.strict.equal(helper.clients.A.getText(), "IHEBA");
|
|
1017
1012
|
helper.logger.validate();
|
|
1018
1013
|
});
|
|
1019
|
-
it("partial len isLocal when seq is
|
|
1014
|
+
it("partial len isLocal when seq is local but a non-local obliterate affects the segment", () => {
|
|
1020
1015
|
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1021
1016
|
// CDEFG-AB
|
|
1022
1017
|
// C-((D-I-E)-F)-G-A-H-B
|
|
@@ -1151,7 +1146,7 @@ for (const incremental of [true, false]) {
|
|
|
1151
1146
|
node_assert_1.strict.equal(helper.clients.C.getText(), "JIGBA");
|
|
1152
1147
|
helper.logger.validate();
|
|
1153
1148
|
});
|
|
1154
|
-
it("obliterate ack traversal is not stopped by
|
|
1149
|
+
it("obliterate ack traversal is not stopped by obliterated segment", () => {
|
|
1155
1150
|
const helper = new reconnectHelper_js_1.ReconnectTestHelper();
|
|
1156
1151
|
// ABCD
|
|
1157
1152
|
// (A-(B)-E-C)-D-F
|