Skip to content

Commit 7724513

Browse files
committed
Fix tests
1 parent fc72a29 commit 7724513

File tree

1 file changed

+35
-19
lines changed

1 file changed

+35
-19
lines changed

tests/parrot/response_handler_spec.lua

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,31 @@ local ResponseHandler = require("parrot.response_handler")
22
local stub = require("luassert.stub")
33

44
describe("ResponseHandler", function()
5-
local mock_vim, mock_utils, mock_queries
5+
local mock_utils, mock_queries
6+
local original_vim_api = {}
67

78
before_each(function()
8-
mock_vim = {
9-
api = {
10-
nvim_get_current_buf = stub.new().returns(1),
11-
nvim_get_current_win = stub.new().returns(1),
12-
nvim_create_namespace = stub.new().returns(1),
13-
nvim_buf_set_extmark = stub.new().returns(1),
14-
nvim_buf_is_valid = stub.new().returns(true),
15-
nvim_buf_get_extmark_by_id = stub.new().returns({ 1 }),
16-
nvim_buf_set_lines = stub.new(),
17-
nvim_win_get_cursor = stub.new().returns({ 1, 0 }),
18-
},
19-
split = stub.new().returns({ "test" }),
20-
-- Remove vim.cmd to avoid potential issues with Vim options
21-
}
9+
-- Store original vim API functions
10+
original_vim_api.nvim_get_current_buf = vim.api.nvim_get_current_buf
11+
original_vim_api.nvim_get_current_win = vim.api.nvim_get_current_win
12+
original_vim_api.nvim_create_namespace = vim.api.nvim_create_namespace
13+
original_vim_api.nvim_buf_set_extmark = vim.api.nvim_buf_set_extmark
14+
original_vim_api.nvim_buf_is_valid = vim.api.nvim_buf_is_valid
15+
original_vim_api.nvim_buf_get_extmark_by_id = vim.api.nvim_buf_get_extmark_by_id
16+
original_vim_api.nvim_buf_set_lines = vim.api.nvim_buf_set_lines
17+
original_vim_api.nvim_win_get_cursor = vim.api.nvim_win_get_cursor
18+
original_vim_api.vim_split = vim.split
19+
20+
-- Mock vim API functions
21+
vim.api.nvim_get_current_buf = stub.new().returns(1)
22+
vim.api.nvim_get_current_win = stub.new().returns(1)
23+
vim.api.nvim_create_namespace = stub.new().returns(1)
24+
vim.api.nvim_buf_set_extmark = stub.new().returns(1)
25+
vim.api.nvim_buf_is_valid = stub.new().returns(true)
26+
vim.api.nvim_buf_get_extmark_by_id = stub.new().returns({ 1 })
27+
vim.api.nvim_buf_set_lines = stub.new()
28+
vim.api.nvim_win_get_cursor = stub.new().returns({ 1, 0 })
29+
vim.split = stub.new().returns({ "test" })
2230

2331
mock_utils = {
2432
uuid = stub.new().returns("test-uuid"),
@@ -30,13 +38,21 @@ describe("ResponseHandler", function()
3038
get = stub.new().returns({ ns_id = 1, ex_id = 1 }),
3139
}
3240

33-
-- Use package.loaded instead of _G.vim
34-
package.loaded.vim = mock_vim
3541
package.loaded["parrot.utils"] = mock_utils
3642
end)
3743

3844
after_each(function()
39-
package.loaded.vim = nil
45+
-- Restore original vim API functions
46+
vim.api.nvim_get_current_buf = original_vim_api.nvim_get_current_buf
47+
vim.api.nvim_get_current_win = original_vim_api.nvim_get_current_win
48+
vim.api.nvim_create_namespace = original_vim_api.nvim_create_namespace
49+
vim.api.nvim_buf_set_extmark = original_vim_api.nvim_buf_set_extmark
50+
vim.api.nvim_buf_is_valid = original_vim_api.nvim_buf_is_valid
51+
vim.api.nvim_buf_get_extmark_by_id = original_vim_api.nvim_buf_get_extmark_by_id
52+
vim.api.nvim_buf_set_lines = original_vim_api.nvim_buf_set_lines
53+
vim.api.nvim_win_get_cursor = original_vim_api.nvim_win_get_cursor
54+
vim.split = original_vim_api.vim_split
55+
4056
package.loaded["parrot.utils"] = nil
4157
end)
4258

@@ -73,7 +89,7 @@ describe("ResponseHandler", function()
7389
end)
7490

7591
it("should not process if buffer is invalid", function()
76-
mock_vim.api.nvim_buf_is_valid.returns(false)
92+
vim.api.nvim_buf_is_valid.returns(false)
7793
local handler = ResponseHandler:new(mock_queries)
7894
handler:handle_chunk(1, nil)
7995
assert.are.same("", handler.response)

0 commit comments

Comments
 (0)