tests(comment): fix

This commit is contained in:
Oleksandr Smirnov 2025-03-19 13:34:10 +02:00
parent 387021ce0a
commit 7495e29d4f
No known key found for this signature in database
5 changed files with 33 additions and 19 deletions

View file

@ -7,33 +7,39 @@ local ts = require "gopher._utils.ts"
local log = require "gopher._utils.log"
local comment = {}
---@param name string
---@return string
---@private
local function template(name)
return "// " .. (name or "") .. " "
end
---@param bufnr integer
---@return string
---@private
local function generate(bufnr)
local cmt = "// "
local ok, res = pcall(ts.get_struct_under_cursor, bufnr)
if ok then
return cmt .. res.name .. " "
local sok, sres = pcall(ts.get_struct_under_cursor, bufnr)
vim.print(sok, sres)
if sok then
return template(sres.name)
end
ok, res = pcall(ts.get_func_under_cursor, bufnr)
if ok then
return cmt .. res.name .. " "
local fok, fres = pcall(ts.get_func_under_cursor, bufnr)
if fok then
return template(fres.name)
end
ok, res = pcall(ts.get_interface_under_cursor, bufnr)
if ok then
return cmt .. res.name .. " "
local iok, ires = pcall(ts.get_interface_under_cursor, bufnr)
if iok then
return template(ires.name)
end
ok, res = pcall(ts.get_package_under_cursor, bufnr)
if ok then
return cmt .. "Package " .. res.name .. " provides "
local pok, pres = pcall(ts.get_package_under_cursor, bufnr)
if pok then
return "// Package " .. pres.name .. " provides "
end
return cmt
return "// "
end
function comment.comment()

View file

@ -21,6 +21,9 @@ local function do_the_test(fixture, pos)
child.cmd "write"
t.eq(t.readfile(tmp), fixtures.output)
-- without it all other(not even from this module) tests are falling
t.deletefile(tmp)
end
T["comment"] = MiniTest.new_set {}
@ -37,11 +40,11 @@ T["comment"]["should add comment to function"] = function()
end
T["comment"]["should add comment to method"] = function()
do_the_test("func", { 5, 1 })
do_the_test("method", { 5, 1 })
end
T["comment"]["should add comment to interface"] = function()
do_the_test("interface", { 3, 1 })
do_the_test("interface", { 3, 6 })
end
T["comment"]["otherwise should add // above cursor"] = function()

View file

@ -31,6 +31,11 @@ function testutils.writefile(fpath, contents)
vim.fn.writefile(vim.split(contents, "\n"), fpath)
end
---@param fpath string
function testutils.deletefile(fpath)
vim.fn.delete(fpath)
end
---@param fixture string
---@return {input: string, output: string}
function testutils.get_fixtures(fixture)