From 53dccb3a77da54a4e428275e8b44dbff77e0d47d Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Tue, 29 Apr 2025 19:40:18 +0200 Subject: feat(tests)!: new infrastructure based on makefile Problem: Not easy to run all checks and tests locally. Redundant CI workflows. Solution: Separate CI into two workflows: * lint: Lua files (stylua, luals), query files (valid captures, predicates, directives using tsqueryls), docs (SUPPORTED_LANGUAGES.md) -- does not need parser installation * tests: parsers (ABI compatibility), query files (tsqueryls on Linux/macOS; nvim on Windows), highlight and indent tests (separated for better readability) -- needs parser installation (but only once) Switch to https://github.com/nvim-treesitter/highlight-assertions fork with ABI 15 support. Run all tests (on Linux and macOS) through `make` (`formatlua`, `checklua`, `lintquery`, `formatquery`, `checkquery`, `docs`, `tests`), which downloads and caches all necessary dependencies. Remove `update-readme` workflow (replaced by lint job on PRs). --- tests/query/injection_spec.lua | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) (limited to 'tests/query/injection_spec.lua') diff --git a/tests/query/injection_spec.lua b/tests/query/injection_spec.lua index e90925e20..63734dd5b 100644 --- a/tests/query/injection_spec.lua +++ b/tests/query/injection_spec.lua @@ -6,24 +6,13 @@ local function check_assertions(file) vim.fn.bufload(file) local ft = vim.bo[buf].filetype local lang = vim.treesitter.language.get_lang(ft) or ft - assert.same( - 1, - vim.fn.executable('highlight-assertions'), - '"highlight-assertions" not executable!' - .. ' Get it via "cargo install --git https://github.com/theHamsta/highlight-assertions"' - ) - local assertions = vim.fn.json_decode( - vim.fn.system( - "highlight-assertions -p '" - .. config.get_install_dir('parser') - .. '/' - .. lang - .. ".so'" - .. " -s '" - .. file - .. "'" - ) - ) + local assertions = vim.fn.json_decode(vim.fn.system({ + os.getenv('HLASSERT'), + '-p', + config.get_install_dir('parser') .. '/' .. lang .. '.so', + '-s', + file, + })) local parser = ts.get_parser(buf, lang) local top_level_root = parser:parse(true)[1]:root() -- cgit v1.2.3-70-g09d2