fix(test): hopefully they work

This commit is contained in:
Barrett Ruth 2026-02-01 23:41:59 -05:00
parent 655e032471
commit 8f5e8e3b17
4 changed files with 37 additions and 20 deletions

View file

@ -19,4 +19,4 @@ jobs:
- uses: nvim-neorocks/nvim-busted-action@v1
with:
nvim-version: ${{ matrix.nvim }}
nvim_version: ${{ matrix.nvim }}

View file

@ -75,12 +75,11 @@ end
---@param bufnr integer
---@return fun()
local function create_debounced_highlight(bufnr)
---@type uv_timer_t?
local timer = nil
local timer = nil ---@type table?
return function()
if timer then
timer:stop()
timer:close()
timer:stop() ---@diagnostic disable-line: undefined-field
timer:close() ---@diagnostic disable-line: undefined-field
timer = nil
end
local t = vim.uv.new_timer()

View file

@ -1,7 +1,16 @@
vim.cmd([[set runtimepath=$VIMRUNTIME]])
vim.opt.runtimepath:append(vim.fn.getcwd())
local plugin_dir = vim.fn.getcwd()
vim.opt.runtimepath:prepend(plugin_dir)
vim.opt.packpath = {}
local function ensure_parser(lang)
local ok = pcall(vim.treesitter.language.inspect, lang)
if not ok then
error('Treesitter parser for ' .. lang .. ' not available. Neovim 0.10+ bundles lua parser.')
end
end
ensure_parser('lua')
local M = {}
function M.create_buffer(lines)

View file

@ -15,9 +15,19 @@ describe('parser', function()
end
end
local test_langs = {
['lua/test.lua'] = 'lua',
['lua/foo.lua'] = 'lua',
['src/bar.py'] = 'python',
['test.lua'] = 'lua',
['test.py'] = 'python',
['other.lua'] = 'lua',
['.envrc'] = 'bash',
}
it('returns empty table for empty buffer', function()
local bufnr = create_buffer({})
local hunks = parser.parse_buffer(bufnr, {}, {}, false)
local hunks = parser.parse_buffer(bufnr, test_langs, {}, false)
assert.are.same({}, hunks)
delete_buffer(bufnr)
end)
@ -30,7 +40,7 @@ describe('parser', function()
'Unstaged (1)',
'M lua/test.lua',
})
local hunks = parser.parse_buffer(bufnr, {}, {}, false)
local hunks = parser.parse_buffer(bufnr, test_langs, {}, false)
assert.are.same({}, hunks)
delete_buffer(bufnr)
end)
@ -44,7 +54,7 @@ describe('parser', function()
'+local new = true',
' return M',
})
local hunks = parser.parse_buffer(bufnr, {}, {}, false)
local hunks = parser.parse_buffer(bufnr, test_langs, {}, false)
assert.are.equal(1, #hunks)
assert.are.equal('lua/test.lua', hunks[1].filename)
@ -66,7 +76,7 @@ describe('parser', function()
'+ print("hello")',
' end',
})
local hunks = parser.parse_buffer(bufnr, {}, {}, false)
local hunks = parser.parse_buffer(bufnr, test_langs, {}, false)
assert.are.equal(2, #hunks)
assert.are.equal(2, hunks[1].start_line)
@ -85,7 +95,7 @@ describe('parser', function()
' def hello():',
'+ pass',
})
local hunks = parser.parse_buffer(bufnr, {}, {}, false)
local hunks = parser.parse_buffer(bufnr, test_langs, {}, false)
assert.are.equal(2, #hunks)
assert.are.equal('lua/foo.lua', hunks[1].filename)
@ -103,7 +113,7 @@ describe('parser', function()
'+print(msg)',
' end',
})
local hunks = parser.parse_buffer(bufnr, {}, {}, false)
local hunks = parser.parse_buffer(bufnr, test_langs, {}, false)
assert.are.equal(1, #hunks)
assert.are.equal('function M.hello()', hunks[1].header_context)
@ -118,7 +128,7 @@ describe('parser', function()
' local M = {}',
'+local x = 1',
})
local hunks = parser.parse_buffer(bufnr, {}, {}, false)
local hunks = parser.parse_buffer(bufnr, test_langs, {}, false)
assert.are.equal(1, #hunks)
assert.is_nil(hunks[1].header_context)
@ -132,8 +142,7 @@ describe('parser', function()
' export FOO=bar',
'+export BAZ=qux',
})
local custom_langs = { ['.envrc'] = 'bash' }
local hunks = parser.parse_buffer(bufnr, custom_langs, {}, false)
local hunks = parser.parse_buffer(bufnr, test_langs, {}, false)
assert.are.equal(1, #hunks)
assert.are.equal('bash', hunks[1].lang)
@ -151,7 +160,7 @@ describe('parser', function()
' def foo():',
'+ pass',
})
local hunks = parser.parse_buffer(bufnr, {}, { 'lua' }, false)
local hunks = parser.parse_buffer(bufnr, test_langs, { 'lua' }, false)
assert.are.equal(1, #hunks)
assert.are.equal('test.py', hunks[1].filename)
@ -168,7 +177,7 @@ describe('parser', function()
' local x = 1',
'+local y = 2',
})
local hunks = parser.parse_buffer(bufnr, {}, {}, false)
local hunks = parser.parse_buffer(bufnr, test_langs, {}, false)
assert.are.equal(1, #hunks, 'Failed for prefix: ' .. prefix)
delete_buffer(bufnr)
end
@ -183,7 +192,7 @@ describe('parser', function()
'',
'Some other content',
})
local hunks = parser.parse_buffer(bufnr, {}, {}, false)
local hunks = parser.parse_buffer(bufnr, test_langs, {}, false)
assert.are.equal(1, #hunks)
assert.are.equal(2, #hunks[1].lines)
@ -200,7 +209,7 @@ describe('parser', function()
'@@ -1,1 +1,1 @@',
' local z = 3',
})
local hunks = parser.parse_buffer(bufnr, {}, {}, false)
local hunks = parser.parse_buffer(bufnr, test_langs, {}, false)
assert.are.equal(2, #hunks)
assert.are.equal(2, #hunks[1].lines)