diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3042c110a..73b6d307d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -95,8 +95,9 @@ jobs: disable-animations: true script: | adb shell pm list packages | grep dev.yorkie.test && adb uninstall dev.yorkie.test || true; - ./gradlew yorkie:connectedCheck -Pandroid.testInstrumentationRunnerArguments.notAnnotation=androidx.test.filters.LargeTest --no-build-cache --no-daemon --stacktrace - ./gradlew yorkie:connectedCheck -Pandroid.testInstrumentationRunnerArguments.annotation=androidx.test.filters.LargeTest --no-build-cache --no-daemon --stacktrace + ./gradlew yorkie:connectedCheck -Pandroid.testInstrumentationRunnerArguments.notAnnotation=dev.yorkie.TreeTest --no-build-cache --no-daemon --stacktrace + ./gradlew yorkie:connectedCheck -Pandroid.testInstrumentationRunnerArguments.annotation=dev.yorkie.TreeBasicTest --no-build-cache --no-daemon --stacktrace + ./gradlew yorkie:connectedCheck -Pandroid.testInstrumentationRunnerArguments.annotation=dev.yorkie.TreeSplitMergeTest --no-build-cache --no-daemon --stacktrace - if: ${{ matrix.api-level == 24 }} run: ./gradlew yorkie:jacocoDebugTestReport - if: ${{ matrix.api-level == 24 }} diff --git a/yorkie/src/androidTest/kotlin/dev/yorkie/TestAnnotations.kt b/yorkie/src/androidTest/kotlin/dev/yorkie/TestAnnotations.kt new file mode 100644 index 000000000..779ebb2a7 --- /dev/null +++ b/yorkie/src/androidTest/kotlin/dev/yorkie/TestAnnotations.kt @@ -0,0 +1,13 @@ +package dev.yorkie + +@Target(AnnotationTarget.CLASS) +@Retention(AnnotationRetention.RUNTIME) +internal annotation class TreeTest + +@Target(AnnotationTarget.CLASS) +@Retention(AnnotationRetention.RUNTIME) +internal annotation class TreeBasicTest + +@Target(AnnotationTarget.CLASS) +@Retention(AnnotationRetention.RUNTIME) +internal annotation class TreeSplitMergeTest diff --git a/yorkie/src/androidTest/kotlin/dev/yorkie/document/json/JsonTreeSplitMergeTest.kt b/yorkie/src/androidTest/kotlin/dev/yorkie/document/json/JsonTreeSplitMergeTest.kt new file mode 100644 index 000000000..9c68bde9e --- /dev/null +++ b/yorkie/src/androidTest/kotlin/dev/yorkie/document/json/JsonTreeSplitMergeTest.kt @@ -0,0 +1,322 @@ +package dev.yorkie.document.json + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import dev.yorkie.TreeSplitMergeTest +import dev.yorkie.TreeTest +import dev.yorkie.core.withTwoClientsAndDocuments +import dev.yorkie.document.json.JsonTreeTest.Companion.rootTree +import kotlin.test.assertEquals +import org.junit.Test +import org.junit.runner.RunWith + +@TreeTest +@TreeSplitMergeTest +@RunWith(AndroidJUnit4::class) +class JsonTreeSplitMergeTest { + + @Test + fun test_contained_split_and_split_at_the_same_position() { + withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.setNewTree( + "t", + TreeBuilder.element("r") { + element("p") { + text { "ab" } + } + }, + ) + }, + JsonTreeTest.Companion.Updater(c2, d2), + ) + JsonTreeTest.assertTreesXmlEquals("

ab

", d1, d2) + + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.rootTree().edit(2, 2, splitLevel = 1) + }, + JsonTreeTest.Companion.Updater(c2, d2) { root, _ -> + root.rootTree().edit(2, 2, splitLevel = 1) + }, + ) { + JsonTreeTest.assertTreesXmlEquals("

a

b

", d1, d2) + } + JsonTreeTest.assertTreesXmlEquals("

a

b

", d1, d2) + } + } + + @Test + fun test_contained_split_and_split_at_different_positions_on_the_same_node() { + withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.setNewTree( + "t", + TreeBuilder.element("r") { + element("p") { + text { "abc" } + } + }, + ) + }, + JsonTreeTest.Companion.Updater(c2, d2), + ) + JsonTreeTest.assertTreesXmlEquals("

abc

", d1, d2) + + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.rootTree().edit(2, 2, splitLevel = 1) + }, + JsonTreeTest.Companion.Updater(c2, d2) { root, _ -> + root.rootTree().edit(3, 3, splitLevel = 1) + }, + ) { + JsonTreeTest.assertTreesXmlEquals("

a

bc

", d1) + JsonTreeTest.assertTreesXmlEquals("

ab

c

", d2) + } + JsonTreeTest.assertTreesXmlEquals("

a

b

c

", d1, d2) + } + } + + @Test + fun test_contained_split_and_insert_into_the_split_position() { + withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.setNewTree( + "t", + TreeBuilder.element("r") { + element("p") { + text { "ab" } + } + }, + ) + }, + JsonTreeTest.Companion.Updater(c2, d2), + ) + JsonTreeTest.assertTreesXmlEquals("

ab

", d1, d2) + + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.rootTree().edit(2, 2, splitLevel = 1) + }, + JsonTreeTest.Companion.Updater(c2, d2) { root, _ -> + root.rootTree().edit(2, 2, TreeBuilder.text { "c" }) + }, + ) { + JsonTreeTest.assertTreesXmlEquals("

a

b

", d1) + JsonTreeTest.assertTreesXmlEquals("

acb

", d2) + } + JsonTreeTest.assertTreesXmlEquals("

ac

b

", d1, d2) + } + } + + @Test + fun test_contained_split_and_insert_into_original_node() { + withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.setNewTree( + "t", + TreeBuilder.element("r") { + element("p") { + text { "ab" } + } + }, + ) + }, + JsonTreeTest.Companion.Updater(c2, d2), + ) + JsonTreeTest.assertTreesXmlEquals("

ab

", d1, d2) + + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.rootTree().edit(2, 2, splitLevel = 1) + }, + JsonTreeTest.Companion.Updater(c2, d2) { root, _ -> + root.rootTree().edit(1, 1, TreeBuilder.text { "c" }) + }, + ) { + JsonTreeTest.assertTreesXmlEquals("

a

b

", d1) + JsonTreeTest.assertTreesXmlEquals("

cab

", d2) + } + JsonTreeTest.assertTreesXmlEquals("

ca

b

", d1, d2) + } + } + + @Test + fun test_contained_split_and_insert_into_split_node() { + withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.setNewTree( + "t", + TreeBuilder.element("r") { + element("p") { + text { "ab" } + } + }, + ) + }, + JsonTreeTest.Companion.Updater(c2, d2), + ) + JsonTreeTest.assertTreesXmlEquals("

ab

", d1, d2) + + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.rootTree().edit(2, 2, splitLevel = 1) + }, + JsonTreeTest.Companion.Updater(c2, d2) { root, _ -> + root.rootTree().edit(3, 3, TreeBuilder.text { "c" }) + }, + ) { + JsonTreeTest.assertTreesXmlEquals("

a

b

", d1) + JsonTreeTest.assertTreesXmlEquals("

abc

", d2) + } + JsonTreeTest.assertTreesXmlEquals("

a

bc

", d2) + } + } + + @Test + fun test_contained_split_and_delete_contents_in_split_node() { + withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.setNewTree( + "t", + TreeBuilder.element("r") { + element("p") { + text { "ab" } + } + }, + ) + }, + JsonTreeTest.Companion.Updater(c2, d2), + ) + JsonTreeTest.assertTreesXmlEquals("

ab

", d1, d2) + + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.rootTree().edit(2, 2, splitLevel = 1) + }, + JsonTreeTest.Companion.Updater(c2, d2) { root, _ -> + root.rootTree().edit(2, 3) + }, + ) { + JsonTreeTest.assertTreesXmlEquals("

a

b

", d1) + JsonTreeTest.assertTreesXmlEquals("

a

", d2) + } + + JsonTreeTest.assertTreesXmlEquals("

a

", d1, d2) + } + } + + @Test + fun test_split_and_merge_with_empty_paragraph_left() { + withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> + d1.updateAsync { root, _ -> + root.setNewTree( + "t", + TreeBuilder.element("doc") { + element("p") { + text { "a" } + text { "b" } + } + }, + ) + }.await() + JsonTreeTest.assertTreesXmlEquals("

ab

", d1) + + d1.updateAsync { root, _ -> + root.rootTree().edit(1, 1, splitLevel = 1) + }.await() + JsonTreeTest.assertTreesXmlEquals("

ab

", d1) + + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.rootTree().edit(1, 3) + }, + JsonTreeTest.Companion.Updater(c2, d2), + ) + JsonTreeTest.assertTreesXmlEquals("

ab

", d1, d2) + } + } + + @Test + fun test_split_and_merge_with_empty_paragraph_left_and_multiple_split_level_left() { + withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> + d1.updateAsync { root, _ -> + root.setNewTree( + "t", + TreeBuilder.element("doc") { + element("p") { + element("p") { + text { "a" } + text { "b" } + } + } + }, + ) + }.await() + assertEquals("

ab

", d1.getRoot().rootTree().toXml()) + + d1.updateAsync { root, _ -> + root.rootTree().edit(2, 2, splitLevel = 2) + }.await() + assertEquals( + "

ab

", + d1.getRoot().rootTree().toXml(), + ) + + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.rootTree().edit(2, 6) + }, + JsonTreeTest.Companion.Updater(c2, d2), + ) + JsonTreeTest.assertTreesXmlEquals("

ab

", d1, d2) + } + } + + @Test + fun test_split_same_offset_multiple_times() { + withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> + d1.updateAsync { root, _ -> + root.setNewTree( + "t", + TreeBuilder.element("doc") { + element("p") { + text { "a" } + text { "b" } + } + }, + ) + }.await() + assertEquals("

ab

", d1.getRoot().rootTree().toXml()) + + d1.updateAsync { root, _ -> + root.rootTree().edit(2, 2, splitLevel = 1) + }.await() + assertEquals("

a

b

", d1.getRoot().rootTree().toXml()) + + d1.updateAsync { root, _ -> + root.rootTree().edit(2, 2, TreeBuilder.text { "c" }) + }.await() + assertEquals("

ac

b

", d1.getRoot().rootTree().toXml()) + + d1.updateAsync { root, _ -> + root.rootTree().edit(2, 2, splitLevel = 1) + }.await() + assertEquals("

a

c

b

", d1.getRoot().rootTree().toXml()) + + JsonTreeTest.updateAndSync( + JsonTreeTest.Companion.Updater(c1, d1) { root, _ -> + root.rootTree().edit(2, 7) + }, + JsonTreeTest.Companion.Updater(c2, d2), + ) + JsonTreeTest.assertTreesXmlEquals("

ab

", d1, d2) + } + } +} diff --git a/yorkie/src/androidTest/kotlin/dev/yorkie/document/json/JsonTreeTest.kt b/yorkie/src/androidTest/kotlin/dev/yorkie/document/json/JsonTreeTest.kt index b7d4dd86f..cc9d73bc5 100644 --- a/yorkie/src/androidTest/kotlin/dev/yorkie/document/json/JsonTreeTest.kt +++ b/yorkie/src/androidTest/kotlin/dev/yorkie/document/json/JsonTreeTest.kt @@ -1,7 +1,8 @@ package dev.yorkie.document.json import androidx.test.ext.junit.runners.AndroidJUnit4 -import androidx.test.filters.LargeTest +import dev.yorkie.TreeBasicTest +import dev.yorkie.TreeTest import dev.yorkie.core.Client import dev.yorkie.core.GENERAL_TIMEOUT import dev.yorkie.core.Presence @@ -29,7 +30,8 @@ import kotlinx.coroutines.withTimeout import org.junit.Test import org.junit.runner.RunWith -@LargeTest +@TreeTest +@TreeBasicTest @OptIn(ExperimentalCoroutinesApi::class) @RunWith(AndroidJUnit4::class) class JsonTreeTest { @@ -494,71 +496,6 @@ class JsonTreeTest { } } - @Test - fun test_contained_split_and_split_at_the_same_position() { - withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> - updateAndSync( - Updater(c1, d1) { root, _ -> - root.setNewTree( - "t", - element("r") { - element("p") { - text { "ab" } - } - }, - ) - }, - Updater(c2, d2), - ) - assertTreesXmlEquals("

ab

", d1, d2) - - updateAndSync( - Updater(c1, d1) { root, _ -> - root.rootTree().edit(2, 2, splitLevel = 1) - }, - Updater(c2, d2) { root, _ -> - root.rootTree().edit(2, 2, splitLevel = 1) - }, - ) { - assertTreesXmlEquals("

a

b

", d1, d2) - } - assertTreesXmlEquals("

a

b

", d1, d2) - } - } - - @Test - fun test_contained_split_and_split_at_different_positions_on_the_same_node() { - withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> - updateAndSync( - Updater(c1, d1) { root, _ -> - root.setNewTree( - "t", - element("r") { - element("p") { - text { "abc" } - } - }, - ) - }, - Updater(c2, d2), - ) - assertTreesXmlEquals("

abc

", d1, d2) - - updateAndSync( - Updater(c1, d1) { root, _ -> - root.rootTree().edit(2, 2, splitLevel = 1) - }, - Updater(c2, d2) { root, _ -> - root.rootTree().edit(3, 3, splitLevel = 1) - }, - ) { - assertTreesXmlEquals("

a

bc

", d1) - assertTreesXmlEquals("

ab

c

", d2) - } - assertTreesXmlEquals("

a

b

c

", d1, d2) - } - } - @Test fun test_insert_side_by_side_elements_into_right_concurrently() { withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> @@ -590,139 +527,6 @@ class JsonTreeTest { } } - @Test - fun test_contained_split_and_insert_into_the_split_position() { - withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> - updateAndSync( - Updater(c1, d1) { root, _ -> - root.setNewTree( - "t", - element("r") { - element("p") { - text { "ab" } - } - }, - ) - }, - Updater(c2, d2), - ) - assertTreesXmlEquals("

ab

", d1, d2) - - updateAndSync( - Updater(c1, d1) { root, _ -> - root.rootTree().edit(2, 2, splitLevel = 1) - }, - Updater(c2, d2) { root, _ -> - root.rootTree().edit(2, 2, text { "c" }) - }, - ) { - assertTreesXmlEquals("

a

b

", d1) - assertTreesXmlEquals("

acb

", d2) - } - assertTreesXmlEquals("

ac

b

", d1, d2) - } - } - - @Test - fun test_contained_split_and_insert_into_original_node() { - withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> - updateAndSync( - Updater(c1, d1) { root, _ -> - root.setNewTree( - "t", - element("r") { - element("p") { - text { "ab" } - } - }, - ) - }, - Updater(c2, d2), - ) - assertTreesXmlEquals("

ab

", d1, d2) - - updateAndSync( - Updater(c1, d1) { root, _ -> - root.rootTree().edit(2, 2, splitLevel = 1) - }, - Updater(c2, d2) { root, _ -> - root.rootTree().edit(1, 1, text { "c" }) - }, - ) { - assertTreesXmlEquals("

a

b

", d1) - assertTreesXmlEquals("

cab

", d2) - } - assertTreesXmlEquals("

ca

b

", d1, d2) - } - } - - @Test - fun test_contained_split_and_insert_into_split_node() { - withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> - updateAndSync( - Updater(c1, d1) { root, _ -> - root.setNewTree( - "t", - element("r") { - element("p") { - text { "ab" } - } - }, - ) - }, - Updater(c2, d2), - ) - assertTreesXmlEquals("

ab

", d1, d2) - - updateAndSync( - Updater(c1, d1) { root, _ -> - root.rootTree().edit(2, 2, splitLevel = 1) - }, - Updater(c2, d2) { root, _ -> - root.rootTree().edit(3, 3, text { "c" }) - }, - ) { - assertTreesXmlEquals("

a

b

", d1) - assertTreesXmlEquals("

abc

", d2) - } - assertTreesXmlEquals("

a

bc

", d2) - } - } - - @Test - fun test_contained_split_and_delete_contents_in_split_node() { - withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> - updateAndSync( - Updater(c1, d1) { root, _ -> - root.setNewTree( - "t", - element("r") { - element("p") { - text { "ab" } - } - }, - ) - }, - Updater(c2, d2), - ) - assertTreesXmlEquals("

ab

", d1, d2) - - updateAndSync( - Updater(c1, d1) { root, _ -> - root.rootTree().edit(2, 2, splitLevel = 1) - }, - Updater(c2, d2) { root, _ -> - root.rootTree().edit(2, 3) - }, - ) { - assertTreesXmlEquals("

a

b

", d1) - assertTreesXmlEquals("

a

", d2) - } - - assertTreesXmlEquals("

a

", d1, d2) - } - } - @Test fun test_deleting_side_by_side_elements_concurrently() { withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> @@ -1512,114 +1316,6 @@ class JsonTreeTest { } } - @Test - fun test_split_and_merge_with_empty_paragraph_left() { - withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> - d1.updateAsync { root, _ -> - root.setNewTree( - "t", - element("doc") { - element("p") { - text { "a" } - text { "b" } - } - }, - ) - }.await() - assertTreesXmlEquals("

ab

", d1) - - d1.updateAsync { root, _ -> - root.rootTree().edit(1, 1, splitLevel = 1) - }.await() - assertTreesXmlEquals("

ab

", d1) - - updateAndSync( - Updater(c1, d1) { root, _ -> - root.rootTree().edit(1, 3) - }, - Updater(c2, d2), - ) - assertTreesXmlEquals("

ab

", d1, d2) - } - } - - @Test - fun test_split_and_merge_with_empty_paragraph_left_and_multiple_split_level_left() { - withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> - d1.updateAsync { root, _ -> - root.setNewTree( - "t", - element("doc") { - element("p") { - element("p") { - text { "a" } - text { "b" } - } - } - }, - ) - }.await() - assertEquals("

ab

", d1.getRoot().rootTree().toXml()) - - d1.updateAsync { root, _ -> - root.rootTree().edit(2, 2, splitLevel = 2) - }.await() - assertEquals( - "

ab

", - d1.getRoot().rootTree().toXml(), - ) - - updateAndSync( - Updater(c1, d1) { root, _ -> - root.rootTree().edit(2, 6) - }, - Updater(c2, d2), - ) - assertTreesXmlEquals("

ab

", d1, d2) - } - } - - @Test - fun test_split_same_offset_multiple_times() { - withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> - d1.updateAsync { root, _ -> - root.setNewTree( - "t", - element("doc") { - element("p") { - text { "a" } - text { "b" } - } - }, - ) - }.await() - assertEquals("

ab

", d1.getRoot().rootTree().toXml()) - - d1.updateAsync { root, _ -> - root.rootTree().edit(2, 2, splitLevel = 1) - }.await() - assertEquals("

a

b

", d1.getRoot().rootTree().toXml()) - - d1.updateAsync { root, _ -> - root.rootTree().edit(2, 2, text { "c" }) - }.await() - assertEquals("

ac

b

", d1.getRoot().rootTree().toXml()) - - d1.updateAsync { root, _ -> - root.rootTree().edit(2, 2, splitLevel = 1) - }.await() - assertEquals("

a

c

b

", d1.getRoot().rootTree().toXml()) - - updateAndSync( - Updater(c1, d1) { root, _ -> - root.rootTree().edit(2, 7) - }, - Updater(c2, d2), - ) - assertTreesXmlEquals("

ab

", d1, d2) - } - } - @Test fun test_tree_change_concurrent_delete() { withTwoClientsAndDocuments(realTimeSync = false) { c1, c2, d1, d2, _ -> diff --git a/yorkie/src/main/kotlin/dev/yorkie/document/operation/OperationInfo.kt b/yorkie/src/main/kotlin/dev/yorkie/document/operation/OperationInfo.kt index da299301d..30a821c9e 100644 --- a/yorkie/src/main/kotlin/dev/yorkie/document/operation/OperationInfo.kt +++ b/yorkie/src/main/kotlin/dev/yorkie/document/operation/OperationInfo.kt @@ -92,7 +92,6 @@ public sealed class OperationInfo { val from: Int, val to: Int, val fromPath: List, - val toPath: List, val attributes: Map, override var path: String = INITIAL_PATH, ) : OperationInfo(), TreeOperationInfo diff --git a/yorkie/src/main/kotlin/dev/yorkie/document/operation/TreeStyleOperation.kt b/yorkie/src/main/kotlin/dev/yorkie/document/operation/TreeStyleOperation.kt index 76eed880c..d926717d7 100644 --- a/yorkie/src/main/kotlin/dev/yorkie/document/operation/TreeStyleOperation.kt +++ b/yorkie/src/main/kotlin/dev/yorkie/document/operation/TreeStyleOperation.kt @@ -36,7 +36,6 @@ internal data class TreeStyleOperation( it.from, it.to, it.fromPath, - it.toPath, it.attributes.orEmpty(), root.createPath(parentCreatedAt), ) diff --git a/yorkie/src/test/kotlin/dev/yorkie/document/json/JsonTreeTest.kt b/yorkie/src/test/kotlin/dev/yorkie/document/json/JsonTreeTest.kt index f7e826358..254f6d93a 100644 --- a/yorkie/src/test/kotlin/dev/yorkie/document/json/JsonTreeTest.kt +++ b/yorkie/src/test/kotlin/dev/yorkie/document/json/JsonTreeTest.kt @@ -319,12 +319,10 @@ class JsonTreeTest { 0, "$.t", ), - // TODO(7hong13): need to check whether toPath is correctly passed TreeStyleOpInfo( 0, 1, listOf(0), - listOf(0, 0), mapOf("a" to "b"), "$.t", ), @@ -387,12 +385,10 @@ class JsonTreeTest { 0, "$.t", ), - // TODO(7hong13): need to check whether toPath is correctly passed TreeStyleOpInfo( 2, 3, listOf(0, 0, 0), - listOf(0, 0, 0, 0), mapOf("a" to "b"), "$.t", ),