diff --git a/lua/neotest-go/init.lua b/lua/neotest-go/init.lua index 08e490f..3fd561a 100644 --- a/lua/neotest-go/init.lua +++ b/lua/neotest-go/init.lua @@ -242,14 +242,14 @@ function adapter.prepare_results(tree, lines, go_root, go_module) 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 diff --git a/lua/spec/neotest-go/init_spec.lua b/lua/spec/neotest-go/init_spec.lua index 80bfb75..f020a1a 100644 --- a/lua/spec/neotest-go/init_spec.lua +++ b/lua/spec/neotest-go/init_spec.lua @@ -302,45 +302,50 @@ describe("prepare_results", function() end end ) - async.it("check that all nested results are in three_level_nested_test.go", 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) + 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 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) + 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 - end) + ) async.it("check that we have correct file level test result status", function() local tests_folder = vim.loop.cwd() .. "/neotest_go"