@@ -2,23 +2,31 @@ local ResponseHandler = require("parrot.response_handler")
2
2
local stub = require (" luassert.stub" )
3
3
4
4
describe (" ResponseHandler" , function ()
5
- local mock_vim , mock_utils , mock_queries
5
+ local mock_utils , mock_queries
6
+ local original_vim_api = {}
6
7
7
8
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" })
22
30
23
31
mock_utils = {
24
32
uuid = stub .new ().returns (" test-uuid" ),
@@ -30,13 +38,21 @@ describe("ResponseHandler", function()
30
38
get = stub .new ().returns ({ ns_id = 1 , ex_id = 1 }),
31
39
}
32
40
33
- -- Use package.loaded instead of _G.vim
34
- package.loaded .vim = mock_vim
35
41
package.loaded [" parrot.utils" ] = mock_utils
36
42
end )
37
43
38
44
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
+
40
56
package.loaded [" parrot.utils" ] = nil
41
57
end )
42
58
@@ -73,7 +89,7 @@ describe("ResponseHandler", function()
73
89
end )
74
90
75
91
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 )
77
93
local handler = ResponseHandler :new (mock_queries )
78
94
handler :handle_chunk (1 , nil )
79
95
assert .are .same (" " , handler .response )
0 commit comments