Skip to content

Commit

Permalink
Remove quotes from nested tests names (#76)
Browse files Browse the repository at this point in the history
  • Loading branch information
sergii4 authored Feb 11, 2024
1 parent 1757961 commit 1bc720a
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 3 deletions.
8 changes: 5 additions & 3 deletions lua/neotest-go/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -234,20 +234,22 @@ function adapter.prepare_results(tree, lines, go_root, go_module)
}
file_id = value.id
else
local normalized_id = utils.normalize_id(value.id, go_root, go_module)
-- to remove quotes, for example three_level_nested_test.go::TestOdd::"odd"::5_is_odd
local value_id = value.id:gsub('%"', "")
local normalized_id = utils.normalize_id(value_id, go_root, go_module)
local test_result = tests[normalized_id]
-- file level node
if test_result then
local fname = async.fn.tempname()
fn.writefile(test_result.output, fname)
results[value.id] = {
results[value_id] = {
status = test_result.status,
short = table.concat(test_result.output, ""),
output = fname,
}
local errors = utils.get_errors_from_test(test_result, utils.get_filename_from_id(value.id))
if errors then
results[value.id].errors = errors
results[value_id].errors = errors
end
if test_result.status == test_statuses.fail and file_id then
results[file_id].status = test_statuses.fail
Expand Down
45 changes: 45 additions & 0 deletions lua/spec/neotest-go/init_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,51 @@ describe("prepare_results", function()
end
end
)
async.it(
"check that all nested results are in three_level_nested_test.go, quotes should be removed from keys",
-- three_level_nested_test.go::TestOdd::odd::5_is_odd
-- not three_level_nested_test.go::TestOdd::"odd"::5_is_odd
function()
local tests_folder = vim.loop.cwd() .. "/neotest_go"
local test_file = tests_folder .. "/three_level_nested_test.go"
local positions = plugin.discover_positions(test_file)

local expected_keys = {
test_file,
test_file .. "::TestOdd",
test_file .. "::TestOdd::odd",
test_file .. "::TestOdd::odd::7_is_odd",
test_file .. "::TestOdd::odd::5_is_odd",
}
-- we should run test from module root
local command = {
"cd",
tests_folder,
"&&",
"go",
"test",
"-v",
"-json",
"",
"-count=1",
"-timeout=60s",
"./...",
}
local handle = io.popen(table.concat(command, " "))
local result = handle:read("*a")
handle:close()

local lines = {}
for s in result:gmatch("[^\r\n]+") do
table.insert(lines, s)
end
local processed_results = plugin.prepare_results(positions, lines, tests_folder, "neotest_go")
for _, v in pairs(expected_keys) do
assert.has_property(v, processed_results)
end
end
)

async.it("check that we have correct file level test result status", function()
local tests_folder = vim.loop.cwd() .. "/neotest_go"
local test_cases = {}
Expand Down
20 changes: 20 additions & 0 deletions neotest_go/three_level_nested_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package main

import "testing"

func TestOdd(t *testing.T) {
t.Run("odd", func(t *testing.T) {
t.Run("5 is odd", func(t *testing.T) {
if 5%2 != 1 {
t.Error("5 is actually odd")
}
})
t.Run("7 is odd", func(t *testing.T) {
if 7%2 != 1 {
t.Error("7 is actually odd")
}
})

})

}

0 comments on commit 1bc720a

Please sign in to comment.