Skip to content

Commit 89adfc7

Browse files
committed
test: cleanup some tests, finish conversion to LSP mock
1 parent 08894e3 commit 89adfc7

File tree

7 files changed

+48
-74
lines changed

7 files changed

+48
-74
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ test_file: deps/mini.nvim
1010
# Download 'mini.nvim' to use its 'mini.test' testing module
1111
# deps/mini.nvim:
1212
# @mkdir deps
13-
# git clone --filter=blob:none https://github.com/echasnovski/mini.nvim deps/mini.nvim
13+
# git clone --filter=blob:none https://github.com/nvim-mini/mini.nvim deps/mini.nvim
1414
# git clone https://github.com/jbyuki/one-small-step-for-vimkind deps/osv

tests/child_helper.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,11 @@ function M.new_child_neovim(test_name)
6161

6262
---@param mock_lsp_server? boolean
6363
function child.run_pre_case(mock_lsp_server)
64-
M.mock_lsp_server = mock_lsp_server or false
64+
M.mock_lsp_server = mock_lsp_server or true
6565
child.reset_config()
6666
child.restart({ "-u", "tests/scripts/minimal_init.lua" })
6767

68-
if mock_lsp_server then
68+
if M.mock_lsp_server then
6969
child.lua('package.loaded["copilot.lsp"] = require("tests.stubs.lsp_init")')
7070
end
7171

tests/stubs/lsp_server.lua

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,9 @@ function M.server()
105105
-- if not seen_files[params.textDocument.uri] then
106106
-- seen_files[params.textDocument.uri] = true
107107
local response = get_lsp_responses(params.textDocument)
108-
handler(nil, response)
108+
vim.defer_fn(function()
109+
handler(nil, response)
110+
end, 10)
109111
-- local empty_response = {
110112
-- edits = {},
111113
-- }
@@ -126,11 +128,10 @@ function M.server()
126128
local params_panel = params or {}
127129
local panelId = params_panel.panelId or (params_panel.doc and params_panel.doc.panelId) or "test-panel-id"
128130

129-
handler(nil, {
130-
solutionCountTarget = 10,
131-
})
132-
133131
vim.defer_fn(function()
132+
handler(nil, {
133+
solutionCountTarget = 10,
134+
})
134135
local handlers = require("copilot.panel.handlers")
135136

136137
handlers.handlers.PanelSolution(nil, {

tests/test_auth.lua

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,14 @@ local child_helper = require("tests.child_helper")
22
local child = child_helper.new_child_neovim("test_auth")
33
local u = require("tests.utils")
44

5-
local config_path = require("copilot.auth").find_config_path() .. "/github-copilot"
6-
local config_path_renamed = config_path .. "_temp_renamed"
7-
8-
--TODO: find a way to not mess with folders
95
local T = MiniTest.new_set({
106
hooks = {
11-
pre_once = function()
12-
if vim.fn.isdirectory(config_path) == 1 then
13-
vim.fn.rename(config_path, config_path_renamed)
14-
end
15-
end,
7+
pre_once = function() end,
168
pre_case = function()
17-
child.run_pre_case()
9+
child.run_pre_case(true)
1810
end,
1911
post_once = function()
2012
child.stop()
21-
22-
if vim.fn.isdirectory(config_path_renamed) == 1 then
23-
vim.fn.rename(config_path_renamed, config_path)
24-
end
2513
end,
2614
},
2715
})

tests/test_base_to_organize.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ local child = child_helper.new_child_neovim("test_base_to_organize")
55
local T = MiniTest.new_set({
66
hooks = {
77
pre_case = function()
8-
child.run_pre_case()
8+
child.run_pre_case(true)
99
child.lua([[s = require('copilot.status')]])
1010
child.lua([[a = require('copilot.api')]])
1111
end,

tests/test_command.lua

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ local T = MiniTest.new_set({
77
hooks = {
88
pre_once = function() end,
99
pre_case = function()
10-
child.run_pre_case()
10+
child.run_pre_case(true)
1111
child.bo.readonly = false
1212
end,
1313
post_once = child.stop,
@@ -20,13 +20,13 @@ T["command()"]["version works"] = function()
2020
child.configure_copilot()
2121
child.cmd("Copilot version")
2222
local result = child.cmd_capture("mess")
23-
u.expect_match(result, ".*copilot language server.*copilot%.lua.*Node%.js.*language%-server%.js.*")
23+
u.expect_match(result, ".*copilot language server.*copilot%.lua.*mocked.*")
2424
end
2525

2626
T["command()"]["panel toggle - open works"] = function()
2727
child.configure_copilot()
2828
child.cmd("Copilot panel toggle")
29-
reference_screenshot(child.get_screenshot())
29+
reference_screenshot(child.get_screenshot(), nil, { ignore_text = { 23, 24 }, ignore_attr = { 23, 24 } })
3030
end
3131

3232
T["command()"]["panel toggle - close works"] = function()
@@ -39,14 +39,14 @@ end
3939
T["command()"]["panel open - it works"] = function()
4040
child.configure_copilot()
4141
child.cmd("Copilot panel open")
42-
reference_screenshot(child.get_screenshot())
42+
reference_screenshot(child.get_screenshot(), nil, { ignore_text = { 23, 24 }, ignore_attr = { 23, 24 } })
4343
end
4444

4545
T["command()"]["panel close - it works"] = function()
4646
child.configure_copilot()
4747
child.cmd("Copilot panel open")
4848
child.cmd("Copilot panel close")
49-
reference_screenshot(child.get_screenshot())
49+
reference_screenshot(child.get_screenshot(), nil, { ignore_text = { 23, 24 }, ignore_attr = { 23, 24 } })
5050
end
5151

5252
T["command()"]["panel is_open - is opened - returns true"] = function()

tests/test_nodejs.lua

Lines changed: 31 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ local T = MiniTest.new_set({
77
pre_case = function()
88
-- Reset the module state before each test
99
package.loaded["copilot.lsp.nodejs"] = nil
10+
M.nodejs = require("copilot.lsp.nodejs")
1011
end,
1112
},
1213
})
@@ -15,10 +16,8 @@ T["get_node_version()"] = MiniTest.new_set()
1516

1617
T["get_node_version()"]["default node command"] = function()
1718
local captured_args = stub.valid_node(function()
18-
local nodejs = require("copilot.lsp.nodejs")
19-
nodejs.setup()
20-
21-
local version, error = nodejs.get_node_version()
19+
M.nodejs.setup()
20+
local version, error = M.nodejs.get_node_version()
2221

2322
eq(version, stub.valid_node_version)
2423
eq(error, nil)
@@ -28,10 +27,9 @@ end
2827

2928
T["get_node_version()"]["custom node command as string"] = function()
3029
local captured_args = stub.valid_node(function()
31-
local nodejs = require("copilot.lsp.nodejs")
32-
nodejs.setup("/usr/local/bin/node")
30+
M.nodejs.setup("/usr/local/bin/node")
3331

34-
local version, error = nodejs.get_node_version()
32+
local version, error = M.nodejs.get_node_version()
3533

3634
eq(version, stub.valid_node_version)
3735
eq(error, nil)
@@ -41,10 +39,9 @@ end
4139

4240
T["get_node_version()"]["custom node command as string with spaces"] = function()
4341
local captured_args = stub.valid_node(function()
44-
local nodejs = require("copilot.lsp.nodejs")
45-
nodejs.setup("/path to/node")
42+
M.nodejs.setup("/path to/node")
4643

47-
local version, error = nodejs.get_node_version()
44+
local version, error = M.nodejs.get_node_version()
4845

4946
eq(version, stub.valid_node_version)
5047
eq(error, nil)
@@ -54,10 +51,9 @@ end
5451

5552
T["get_node_version()"]["custom node command as table"] = function()
5653
local captured_args = stub.valid_node(function()
57-
local nodejs = require("copilot.lsp.nodejs")
58-
nodejs.setup({ "mise", "x", "node@lts", "--", "node" })
54+
M.nodejs.setup({ "mise", "x", "node@lts", "--", "node" })
5955

60-
local version, error = nodejs.get_node_version()
56+
local version, error = M.nodejs.get_node_version()
6157

6258
eq(version, stub.valid_node_version)
6359
eq(error, nil)
@@ -67,10 +63,9 @@ end
6763

6864
T["get_node_version()"]["handles vim.system failure"] = function()
6965
local captured_args = stub.process("", -1, true, function()
70-
local nodejs = require("copilot.lsp.nodejs")
71-
nodejs.setup("node")
66+
M.nodejs.setup("node")
7267

73-
local _, error = nodejs.get_node_version()
68+
local _, error = M.nodejs.get_node_version()
7469
error = error or ""
7570

7671
eq(error:find("Could not determine Node.js version") ~= nil, true)
@@ -80,10 +75,9 @@ end
8075

8176
T["get_node_version()"]["handles process with non-zero exit code"] = function()
8277
local captured_args = stub.process("", 127, false, function()
83-
local nodejs = require("copilot.lsp.nodejs")
84-
nodejs.setup("nonexistent-node")
78+
M.nodejs.setup("nonexistent-node")
8579

86-
local _, error = nodejs.get_node_version()
80+
local _, error = M.nodejs.get_node_version()
8781
error = error or ""
8882

8983
eq(error:find("Could not determine Node.js version") ~= nil, true)
@@ -93,10 +87,9 @@ end
9387

9488
T["get_node_version()"]["validates node version requirement"] = function()
9589
local captured_args = stub.invalid_node(function()
96-
local nodejs = require("copilot.lsp.nodejs")
97-
nodejs.setup("node")
90+
M.nodejs.setup("node")
9891

99-
local _, error = nodejs.get_node_version()
92+
local _, error = M.nodejs.get_node_version()
10093
error = error or ""
10194

10295
eq(error:find("Node.js version 20 or newer required") ~= nil, true)
@@ -108,76 +101,68 @@ T["get_execute_command()"] = MiniTest.new_set()
108101

109102
T["get_execute_command()"]["default node command, default server path"] = function()
110103
local captured_path = stub.get_runtime_server_path(function()
111-
local nodejs = require("copilot.lsp.nodejs")
112-
eq(nodejs.setup(), true)
113-
local cmd = nodejs.get_execute_command()
104+
eq(M.nodejs.setup(), true)
105+
local cmd = M.nodejs.get_execute_command()
114106
eq(cmd, { "node", vim.fn.expand(stub.default_server_path), "--stdio" })
115107
end)
116108
eq(captured_path, stub.default_server_path)
117109
end
118110

119111
T["get_execute_command()"]["default node command, custom server path"] = function()
120112
stub.get_runtime_server_path(function()
121-
local nodejs = require("copilot.lsp.nodejs")
122-
eq(nodejs.setup(nil, vim.fn.expand(stub.custom_server_path)), true)
123-
local cmd = nodejs.get_execute_command()
113+
eq(M.nodejs.setup(nil, vim.fn.expand(stub.custom_server_path)), true)
114+
local cmd = M.nodejs.get_execute_command()
124115
eq(cmd, { "node", vim.fn.expand(stub.custom_server_path), "--stdio" })
125116
end)
126117
end
127118

128119
T["get_execute_command()"]["custom node command as string, default server path"] = function()
129120
local captured_path = stub.get_runtime_server_path(function()
130-
local nodejs = require("copilot.lsp.nodejs")
131-
eq(nodejs.setup("/usr/local/bin/node"), true)
132-
local cmd = nodejs.get_execute_command()
121+
eq(M.nodejs.setup("/usr/local/bin/node"), true)
122+
local cmd = M.nodejs.get_execute_command()
133123
eq(cmd, { "/usr/local/bin/node", vim.fn.expand(stub.default_server_path), "--stdio" })
134124
end)
135125
eq(captured_path, stub.default_server_path)
136126
end
137127

138128
T["get_execute_command()"]["custom node command as string, custom server path"] = function()
139129
stub.get_runtime_server_path(function()
140-
local nodejs = require("copilot.lsp.nodejs")
141-
nodejs.setup("/usr/local/bin/node", stub.custom_server_path)
142-
local cmd = nodejs.get_execute_command()
130+
M.nodejs.setup("/usr/local/bin/node", stub.custom_server_path)
131+
local cmd = M.nodejs.get_execute_command()
143132
eq(cmd, { "/usr/local/bin/node", stub.custom_server_path, "--stdio" })
144133
end)
145134
end
146135

147136
T["get_execute_command()"]["custom node command as string with spaces, default server path"] = function()
148137
local captured_path = stub.get_runtime_server_path(function()
149-
local nodejs = require("copilot.lsp.nodejs")
150-
nodejs.setup("/path to/node")
151-
local cmd = nodejs.get_execute_command()
138+
M.nodejs.setup("/path to/node")
139+
local cmd = M.nodejs.get_execute_command()
152140
eq(cmd, { "/path to/node", vim.fn.expand(stub.default_server_path), "--stdio" })
153141
end)
154142
eq(captured_path, stub.default_server_path)
155143
end
156144

157145
T["get_execute_command()"]["custom node command as string with spaces, custom server path"] = function()
158146
stub.get_runtime_server_path(function()
159-
local nodejs = require("copilot.lsp.nodejs")
160-
nodejs.setup("/path to/node", stub.custom_server_path)
161-
local cmd = nodejs.get_execute_command()
147+
M.nodejs.setup("/path to/node", stub.custom_server_path)
148+
local cmd = M.nodejs.get_execute_command()
162149
eq(cmd, { "/path to/node", stub.custom_server_path, "--stdio" })
163150
end)
164151
end
165152

166153
T["get_execute_command()"]["custom node command as table, default server path"] = function()
167154
local captured_path = stub.get_runtime_server_path(function()
168-
local nodejs = require("copilot.lsp.nodejs")
169-
nodejs.setup({ "mise", "x", "node@lts", "--", "node" })
170-
local cmd = nodejs.get_execute_command()
155+
M.nodejs.setup({ "mise", "x", "node@lts", "--", "node" })
156+
local cmd = M.nodejs.get_execute_command()
171157
eq(cmd, { "mise", "x", "node@lts", "--", "node", vim.fn.expand(stub.default_server_path), "--stdio" })
172158
end)
173159
eq(captured_path, stub.default_server_path)
174160
end
175161

176162
T["get_execute_command()"]["custom node command as table, custom server path"] = function()
177163
stub.get_runtime_server_path(function()
178-
local nodejs = require("copilot.lsp.nodejs")
179-
nodejs.setup({ "mise", "x", "node@lts", "--", "node" }, stub.custom_server_path)
180-
local cmd = nodejs.get_execute_command()
164+
M.nodejs.setup({ "mise", "x", "node@lts", "--", "node" }, stub.custom_server_path)
165+
local cmd = M.nodejs.get_execute_command()
181166
eq(cmd, { "mise", "x", "node@lts", "--", "node", stub.custom_server_path, "--stdio" })
182167
end)
183168
end

0 commit comments

Comments
 (0)