go.nvim/lua/tests/go_impl_spec.lua
2022-07-27 02:21:58 +10:00

47 lines
1.5 KiB
Lua

local _ = require("plenary/busted")
local eq = assert.are.same
local cur_dir = vim.fn.expand("%:p:h")
-- local status = require("plenary.reload").reload_module("go.nvim")
-- status = require("plenary.reload").reload_module("nvim-treesitter")
-- local ulog = require('go.utils').log
describe("should run impl", function()
it("should run impl", function()
--
if vim.fn.has("nvim-0.7") == 0 then
-- treesitter master require nvim-0.7+
return eq(1, 1)
end
vim.cmd([[packadd go.nvim]])
vim.cmd([[packadd nvim-treesitter]])
local status = require("plenary.reload").reload_module("go.nvim")
status = require("plenary.reload").reload_module("nvim-treesitter/nvim-treesitter")
require("go").setup({ verbose = true })
local name = vim.fn.tempname() .. ".go"
local path = cur_dir .. "/lua/tests/fixtures/impl/impl_input.go" -- %:p:h ? %:p
local lines = vim.fn.readfile(path)
vim.fn.writefile(lines, name)
local expected = vim.fn.join(vim.fn.readfile(cur_dir .. "/lua/tests/fixtures/impl/impl_golden.txt"), "\n")
local cmd = " silent exe 'e " .. name .. "'"
vim.cmd(cmd)
local bufn = vim.fn.bufnr("")
vim.fn.setpos(".", { bufn, 4, 11, 0 })
vim.bo.filetype = "go"
local goimpl = require("go.impl")
goimpl.run("io.Writer")
vim.wait(400, function()
vim.cmd("w")
end)
local impled = vim.fn.join(vim.fn.readfile(name), "\n")
vim.fn.assert_equal(impled, expected)
eq(expected, impled)
cmd = "bd! " .. name
vim.cmd(cmd)
end)
end)