diff --git a/.luacheckrc b/.luacheckrc new file mode 100644 index 0000000..c8a3f4e --- /dev/null +++ b/.luacheckrc @@ -0,0 +1,3 @@ +globals = { + "vim", +} diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..2f9a185 --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,12 @@ +# branches: main + +pipeline: + code_lint: + image: pipelinecomponents/luacheck + commands: + - luacheck lua/zettelkasten + + unit_tests: + image: imega/busted + commands: + - busted test -C lua diff --git a/lua/test/action_spec.lua b/lua/test/action_spec.lua index d720f4c..0eb32a2 100644 --- a/lua/test/action_spec.lua +++ b/lua/test/action_spec.lua @@ -1,7 +1,12 @@ local action = require 'zettelkasten.action' before_each(function() - _G.vim = {g = {}, b = {}, loop = {fs_scandir = function() end}} + _G.vim = { + g = {}, + b = {}, + fn = {fnameescape = function(input) return input end}, + loop = {fs_scandir = function() end} + } end) after_each(function() _G.vim = nil end) @@ -102,7 +107,7 @@ end) describe("create_link", function() it("substitutes the argument text with a link", function() - pending() + pending("not implemented") vim.fn = {getpos = function() return {1, 2, 3} end} vim.api = { nvim_buf_get_lines = function() return {"hi", 1, 2} end, diff --git a/lua/test/files_spec.lua b/lua/test/files_spec.lua index 0e23b7d..c5874a6 100644 --- a/lua/test/files_spec.lua +++ b/lua/test/files_spec.lua @@ -19,7 +19,7 @@ local function simple_api_mock(files) end describe("get_anchors_and_paths", function() - before_each(function() get_api_mock = simple_api_mock end) + before_each(function() Get_api_mock = simple_api_mock end) after_each(function() _G.vim = nil end) it("should return anchor-keyed table pointing to filename of zettel", @@ -27,7 +27,7 @@ describe("get_anchors_and_paths", function() local file_list = {} file_list["someDir/1910291645 this-is-a-testfile.md"] = "1910291645 this-is-a-testfile.md" - _G.vim = get_api_mock(file_list) + _G.vim = Get_api_mock(file_list) local expected = { ["1910291645"] = "someDir/1910291645 this-is-a-testfile.md" @@ -43,7 +43,7 @@ describe("get_anchors_and_paths", function() ["1910271456 this-is-wrong-extension.txt"] = "1910271456 this-is-wrong-extension.txt", ["1812 this-is-ignored.md"] = "1812 this-is-ignored.md" } - _G.vim = get_api_mock(file_list) + _G.vim = Get_api_mock(file_list) local expected = { ["1910291645"] = "someDir/1910291645 this-is-a-testfile.md", @@ -57,7 +57,7 @@ describe("get_anchors_and_paths", function() ["mydirectory/1910291645 myfile.wiki"] = "1910291645 myfile.wiki", ["mydirectory/2345678901 another.wiki"] = "2345678901 another.wiki" } - _G.vim = get_api_mock(file_list) + _G.vim = Get_api_mock(file_list) vim.g['zettel_extension'] = '.wiki' local expected = { @@ -71,7 +71,7 @@ describe("get_anchors_and_paths", function() end) describe("get_all_files", function() - it("should recurse into directories if recursive argument passed in ", + it("should recurse into directories if recursive argument passed in", function() local files = { {"1910271456 testfile.md", "file"}, @@ -91,7 +91,7 @@ describe("get_all_files", function() end, fs_scandir_next = function() if #files == 0 then return nil end - local fname, ftype = unpack(table.remove(files)) + local fname, ftype = table.unpack(table.remove(files)) return fname, ftype end }) diff --git a/lua/zettelkasten/action.lua b/lua/zettelkasten/action.lua index 2eff445..86868a1 100644 --- a/lua/zettelkasten/action.lua +++ b/lua/zettelkasten/action.lua @@ -11,7 +11,7 @@ function A.open(link) if not link or not link.ref then return end local fname = f.get_zettel_by_anchor(link.anchor) or f.get_zettel_by_ref(link.ref) or link.ref - vim.api.nvim_command(string.format("edit %s", fname)) + vim.api.nvim_command(string.format("edit %s", vim.fn.fnameescape(fname))) end -- Gets the input at the current buffer cursor and opens it