* 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
35 lines
1 KiB
Lua
35 lines
1 KiB
Lua
local t = require "spec.testutils"
|
|
local child, T, impl = t.setup "impl"
|
|
|
|
impl["should do impl with 'w io.Writer'"] = function()
|
|
local rs = t.setup_test("impl/writer", child, { 3, 0 })
|
|
child.cmd "GoImpl w io.Writer"
|
|
child.cmd "write"
|
|
|
|
-- NOTE: since "impl" won't implement interface if it's already implemented i went with this hack
|
|
local rhs = rs.fixtures.output:gsub("Test2", "Test")
|
|
t.eq(t.readfile(rs.tmp), rhs)
|
|
t.cleanup(rs)
|
|
end
|
|
|
|
impl["should work with full input, 'r Read io.Reader'"] = function()
|
|
local rs = t.setup_test("impl/reader", child)
|
|
child.cmd "GoImpl r Read io.Reader"
|
|
child.cmd "write"
|
|
|
|
local rhs = rs.fixtures.output:gsub("Read2", "Read")
|
|
t.eq(t.readfile(rs.tmp), rhs)
|
|
t.cleanup(rs)
|
|
end
|
|
|
|
impl["should work with minimal input 'io.Closer'"] = function()
|
|
local rs = t.setup_test("impl/closer", child, { 3, 6 })
|
|
child.cmd "GoImpl io.Closer"
|
|
child.cmd "write"
|
|
|
|
local rhs = rs.fixtures.output:gsub("Test2", "Test")
|
|
t.eq(t.readfile(rs.tmp), rhs)
|
|
t.cleanup(rs)
|
|
end
|
|
|
|
return T
|