* feat(struct_tags): add options support * refactor(struct-tags): give input field better name * feat(struct-tag): add default option * refactor: make it work on neovim version below 0.12 * chore(struct-tags): update the demo * refactor: unite struct_tags util with main logic
59 lines
1.5 KiB
Lua
59 lines
1.5 KiB
Lua
local t = require "spec.testutils"
|
|
local _, T, utils = t.setup "utils"
|
|
|
|
utils["should .remove_empty_lines()"] = function()
|
|
local u = require "gopher._utils"
|
|
local inp = { "hi", "", "a", "", "", "asdf" }
|
|
|
|
t.eq(u.remove_empty_lines(inp), { "hi", "a", "asdf" })
|
|
end
|
|
|
|
utils["should .readfile_joined()"] = function()
|
|
local data = "line1\nline2\nline3"
|
|
local tmp = t.tmpfile()
|
|
local u = require "gopher._utils"
|
|
|
|
t.writefile(tmp, data)
|
|
t.eq(u.readfile_joined(tmp), data)
|
|
end
|
|
|
|
utils["should .trimend()"] = function()
|
|
local u = require "gopher._utils"
|
|
t.eq(u.trimend " hi ", " hi")
|
|
end
|
|
|
|
utils["should add .indent() spaces"] = function()
|
|
local u = require "gopher._utils"
|
|
local line = " func Test() error {"
|
|
local indent = 4
|
|
|
|
t.eq(" ", u.indent(line, indent))
|
|
end
|
|
|
|
utils["should add .indent() a tab"] = function()
|
|
local u = require "gopher._utils"
|
|
local line = "\tfunc Test() error {"
|
|
local indent = 1
|
|
|
|
t.eq("\t", u.indent(line, indent))
|
|
end
|
|
|
|
utils["should add .indent() 2 tabs"] = function()
|
|
local u = require "gopher._utils"
|
|
local line = "\t\tfunc Test() error {"
|
|
local indent = 2
|
|
|
|
t.eq("\t\t", u.indent(line, indent))
|
|
end
|
|
|
|
utils["should .list_unique on list with duplicates"] = function()
|
|
local u = require "gopher._utils"
|
|
t.eq({ "json", "xml" }, u.list_unique { "json", "xml", "json" })
|
|
end
|
|
|
|
utils["should .list_unique on list with no duplicates"] = function()
|
|
local u = require "gopher._utils"
|
|
t.eq({ "json", "xml" }, u.list_unique { "json", "xml" })
|
|
end
|
|
|
|
return T
|