aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/parsers_spec.lua46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/unit/parsers_spec.lua b/tests/unit/parsers_spec.lua
new file mode 100644
index 000000000..d40578b87
--- /dev/null
+++ b/tests/unit/parsers_spec.lua
@@ -0,0 +1,46 @@
+local stub = require "luassert.stub"
+local parsers = require "nvim-treesitter.parsers"
+
+describe("maintained_parsers", function()
+ before_each(function()
+ stub(vim.fn, "executable")
+ end)
+
+ after_each(function()
+ vim.fn.executable:clear()
+ end)
+
+ it("does not return experimental parsers", function()
+ local old_list = parsers.list
+ parsers.list = {
+ c = {
+ install_info = {
+ url = "https://github.com/tree-sitter/tree-sitter-c",
+ files = { "src/parser.c" },
+ },
+ maintainers = { "@vigoux" },
+ },
+ d = {
+ install_info = {
+ url = "https://github.com/CyberShadow/tree-sitter-d",
+ files = { "src/parser.c", "src/scanner.cc" },
+ requires_generate_from_grammar = true,
+ },
+ maintainers = { "@nawordar" },
+ experimental = true,
+ },
+ haskell = {
+ install_info = {
+ url = "https://github.com/tree-sitter/tree-sitter-haskell",
+ files = { "src/parser.c", "src/scanner.cc" },
+ },
+ },
+ }
+
+ local expected = { "c" }
+
+ assert.same(parsers.maintained_parsers(), expected)
+
+ parsers.list = old_list
+ end)
+end)