From 42b05b4b5e45c7dfef62d4fe301193a0d32a988b Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Mon, 13 Mar 2017 17:34:31 -0700 Subject: [PATCH] Add simple unit test for invalidating trees preceding an edit due to lookahead --- test/runtime/tree_test.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/runtime/tree_test.cc b/test/runtime/tree_test.cc index 4b3da73d..a3bdd563 100644 --- a/test/runtime/tree_test.cc +++ b/test/runtime/tree_test.cc @@ -312,6 +312,24 @@ describe("Tree", []() { AssertThat(tree->children[2]->size, Equals({3, 3, {0, 3}})); }); }); + + describe("edits within a tree's range of scanned bytes", [&]() { + it("marks preceding trees as changed", [&]() { + tree->children[0]->bytes_scanned = 7; + + TSInputEdit edit; + edit.start_byte = 6; + edit.bytes_removed = 1; + edit.bytes_added = 1; + edit.start_point = {0, 6}; + edit.extent_removed = {0, 1}; + edit.extent_added = {0, 1}; + ts_tree_edit(tree, &edit); + assert_consistent(tree); + + AssertThat(tree->children[0]->has_changes, IsTrue()); + }); + }); }); describe("eq", [&]() {