From cd4c0a7526561ff94b80bde0a058c1661b62da76 Mon Sep 17 00:00:00 2001 From: partizan Date: Mon, 30 Aug 2021 21:18:04 +0300 Subject: test: Add tests for is_in_node_range (#1756) * fix: is_in_node_range now includes end line and col This fixes no indents at the end of python files Refs #1136 * update scala highlights (#1760) * add type highlights * add call expression highlights * add function definition highlights * add expression highlights * add literals highlights * add operator highlights * add punctuation highlights * add comment highlights Co-authored-by: Stevan Milic * test: Add unit tests * Revert "fix: is_in_node_range now includes end line and col" This reverts commit 5a721fef5620eb2fae6d9cebe09bf7b230f2606f. * refactor test * apply stylua * fix luacheck * update `describe` text * smallfix Co-authored-by: Stevan Milic Co-authored-by: Stevan Milic --- tests/unit/ts_utils_spec.lua | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 tests/unit/ts_utils_spec.lua (limited to 'tests/unit/ts_utils_spec.lua') diff --git a/tests/unit/ts_utils_spec.lua b/tests/unit/ts_utils_spec.lua new file mode 100644 index 00000000..1825a3b6 --- /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) -- cgit v1.2.3