* chore: remove unused rules from nvim selene setup * test: add test for config * chore: update tasks, run tests on all recent versions * refactor(test): make helper test function more ergonomic In my opinion, requiring user to access tests via `T["module_name"]` was too fragile and typos prone. * fix(config): typo annotations * chore(ci): install go bins via gopher.nvim itself * feat(struct_tags): add range support (#117) * feat(struct_tags): add range support * refactor: use `start`, and `end_` naming for ranges * fix(testutils): validate provided cursor position * chore: update CONTRIBUTING.md * chore: add demos (#118) * chore: add dataset for demos * chore(demos): add demos * chore: update CONTRIBUTING * this copefully will fix comments gif * chore: add note about lazy loading * chore(readme): at this point there is no code from go.nvim or iferr * chore(readme): update the structure * chore(readme): change wording of some things
29 lines
777 B
Lua
29 lines
777 B
Lua
local t = require "spec.testutils"
|
|
local child, T, gotests = t.setup "gotests"
|
|
|
|
--- NOTE: :GoTestAdd is the only place that has actual logic
|
|
--- All other parts are handled `gotests` itself.
|
|
|
|
---@param fpath string
|
|
---@return string
|
|
local function read_testfile(fpath)
|
|
return t.readfile(fpath:gsub(".go", "_test.go"))
|
|
end
|
|
|
|
gotests["should add test for function under cursor"] = function()
|
|
local rs = t.setup_test("tests/function", child, { 3, 5 })
|
|
child.cmd "GoTestAdd"
|
|
|
|
t.eq(rs.fixtures.output, read_testfile(rs.tmp))
|
|
t.cleanup(rs)
|
|
end
|
|
|
|
gotests["should add test for method under cursor"] = function()
|
|
local rs = t.setup_test("tests/method", child, { 5, 19 })
|
|
child.cmd "GoTestAdd"
|
|
|
|
t.eq(rs.fixtures.output, read_testfile(rs.tmp))
|
|
t.cleanup(rs)
|
|
end
|
|
|
|
return T
|