Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add debug-level notification when package/test cannot be identified from test output #43

Merged
merged 1 commit into from
Jun 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions lua/neotest-golang/options.lua
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ function Opts:new(opts)
self.dap_go_opts = opts.dap_go_opts or {}
self.warn_test_name_dupes = opts.warn_test_name_dupes or true
self.warn_test_not_executed = opts.warn_test_not_executed or true
self.dev_notifications = opts.dev_notifications or false
end

--- A convenience function to get the current options.
Expand All @@ -27,6 +28,7 @@ function Opts:get()
dap_go_opts = self.dap_go_opts,
warn_test_name_dupes = self.warn_test_name_dupes,
warn_test_not_executed = self.warn_test_not_executed,
dev_notifications = self.dev_notifications,
}
end

Expand Down
25 changes: 18 additions & 7 deletions lua/neotest-golang/results_dir.lua
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,9 @@ end
--- The strategy here is to loop over the Neotest position data, and figure out
--- which position belongs to a specific Go package (using the output from
--- 'go list -json').
---
--- If a test cannot be decorated with Go package/test name data, an association
--- warning will be shown (see show_warnings).
--- @param res table<string, TestData>
--- @param gotest_output table
--- @param golist_output table
Expand Down Expand Up @@ -266,14 +269,22 @@ end
--- @param d table<string, TestData>
--- @return nil
function M.show_warnings(d)
-- warn if Go package/test is missing from tree node.
for pos_id, test_data in pairs(d) do
if test_data.gotest_data.pkg == "" or test_data.gotest_data.name == "" then
vim.notify(
"Unable to associate go package/test with neotest tree node: " .. pos_id,
vim.log.levels.WARN
)
if options.get().dev_notifications == true then
-- warn if Go package/test is missing for given Neotest position id (Neotest tree node).
--- @type table<string>
local position_ids = {}
for pos_id, test_data in pairs(d) do
if
test_data.gotest_data.pkg == "" or test_data.gotest_data.name == ""
then
table.insert(position_ids, pos_id)
end
end
vim.notify(
"Test(s) not associated (not found/executed):\n"
.. table.concat(position_ids, "\n"),
vim.log.levels.DEBUG
)
end

if options.get().warn_test_name_dupes == true then
Expand Down
2 changes: 2 additions & 0 deletions tests/unit/options_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ describe("Options are set up", function()
},
warn_test_name_dupes = true,
warn_test_not_executed = true,
dev_notifications = false,
}
options.setup()
assert.are_same(expected_options, options.get())
Expand All @@ -31,6 +32,7 @@ describe("Options are set up", function()
},
warn_test_name_dupes = true,
warn_test_not_executed = true,
dev_notifications = false,
}
options.setup(expected_options)
assert.are_same(expected_options, options.get())
Expand Down
Loading