diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/unit/ts_utils_spec.lua | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/unit/ts_utils_spec.lua b/tests/unit/ts_utils_spec.lua new file mode 100644 index 000000000..1825a3b68 --- /dev/null +++ b/tests/unit/ts_utils_spec.lua @@ -0,0 +1,41 @@ +local tsutils = require "nvim-treesitter.ts_utils" + +describe("is_in_node_range", function() + local function test_is_in_node_range(line, col) + local node = { + range = function() + return unpack { 0, 3, 2, 5 } + end, + } + return tsutils.is_in_node_range(node, line, col) + end + + it("returns false before node start", function() + assert.is_false(test_is_in_node_range(0, 0)) + assert.is_false(test_is_in_node_range(0, 1)) + assert.is_false(test_is_in_node_range(0, 2)) + end) + + it("returns true at node start", function() + assert.is_true(test_is_in_node_range(0, 3)) + end) + + it("returns true on first line of the node", function() + assert.is_true(test_is_in_node_range(0, 4)) + end) + + it("returns true between node lines", function() + assert.is_true(test_is_in_node_range(1, 2)) + assert.is_true(test_is_in_node_range(1, 20)) + end) + + it("returns false on node end", function() + -- Ranges are end-exclusive + assert.is_false(test_is_in_node_range(2, 5)) + end) + + it("returns false after node end", function() + assert.is_false(test_is_in_node_range(2, 6)) + assert.is_false(test_is_in_node_range(3, 0)) + end) +end) |
