Skip to content

Commit 4705ac0

Browse files
committed
test: fix tests
1 parent b0d5d8f commit 4705ac0

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

tests/helpers/util.lua

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ local regexplainer = require 'regexplainer'
22
local buffers = require 'regexplainer.buffers'
33
local parsers = require "nvim-treesitter.parsers"
44

5-
local get_node_text = vim.treesitter.get_node_text or vim.treesitter.query.get_node_text
5+
local get_parser = vim.treesitter.get_parser
6+
local get_node_text = vim.treesitter.get_node_text
67

78
local query = vim.treesitter.query.get('javascript', 'regexplainer_test')
89
if not query then error('could not get query') end
@@ -74,24 +75,27 @@ local function get_buffer_text(bufnr)
7475
return table.concat(vim.api.nvim_buf_get_lines(bufnr, 0, -1, false), '\n')
7576
end
7677

77-
---@param text string contents of test fixture buffer
78+
---@param pattern string regexp pattern to test
7879
---@return number bufnr bufnr of test fixture buffer
79-
local function setup_test_buffer(text)
80-
local newbuf = vim.api.nvim_create_buf(true, true)
80+
local function setup_test_buffer(pattern)
81+
local newbuf = vim.api.nvim_create_buf(true, false)
82+
vim.api.nvim_win_set_buf(0, newbuf)
8183
vim.opt_local.filetype = 'javascript'
82-
vim.api.nvim_set_current_line(text)
84+
vim.api.nvim_set_current_line('/'..pattern..'/;')
85+
vim.treesitter.start(newbuf, 'javascript')
8386
return newbuf
8487
end
8588

86-
local function show_and_get_regexplainer_buffer()
89+
local function show_and_get_regexplainer_buffer(bufnr)
8790
local buffer
8891
repeat
92+
get_parser(0):parse()
8993
vim.uv.sleep(10)
9094
local row, col = unpack(vim.api.nvim_win_get_cursor(0));
9195
vim.api.nvim_win_set_cursor(0, {row, col + 1})
9296
local cursor_node = vim.treesitter.get_node()
9397
if (cursor_node) then
94-
for id, node in query:iter_captures(cursor_node, 0) do
98+
for id, node in query:iter_captures(cursor_node, bufnr) do
9599
if query[id] == 'test.pattern' and node then
96100
local range = node:range()
97101
vim.api.nvim_win_set_cursor(0, { range[0], range[1] })
@@ -129,9 +133,12 @@ function M.clear_test_state()
129133
assert(vim.fn.getreg(M.register_name) == '', "Failed to properly clear register")
130134
end
131135

132-
function M.assert_string(regexp, expected, message)
133-
local newbufnr = setup_test_buffer(regexp)
134-
local rebufnr = show_and_get_regexplainer_buffer()
136+
---@param pattern string regexp pattern to test
137+
---@param expected string expected markdown output
138+
---@param message string test description
139+
function M.assert_string(pattern, expected, message)
140+
local newbufnr = setup_test_buffer(pattern)
141+
local rebufnr = show_and_get_regexplainer_buffer(newbufnr)
135142
local text = get_buffer_text(rebufnr)
136143
-- Cleanup any remaining buffers
137144
vim.api.nvim_buf_delete(newbufnr, { force = true })

0 commit comments

Comments
 (0)