From 3d49d58fd24c5a6aecedf8e8829aa7b2f5c01b2a Mon Sep 17 00:00:00 2001 From: Smirnov Oleksandr Date: Thu, 20 Jul 2023 00:18:13 +0300 Subject: [PATCH] feat: run tests independent from user's nvim config --- .gitignore | 3 ++- Taskfile.yml | 2 +- spec/minimal_init.lua | 33 +++++++++++++++++++++++++++++++++ spec/minimal_init.vim | 4 ---- 4 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 spec/minimal_init.lua delete mode 100644 spec/minimal_init.vim diff --git a/.gitignore b/.gitignore index a5c9323..df7d859 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -playground/ +/playground/ +/.tests/ diff --git a/Taskfile.yml b/Taskfile.yml index 2f3b8c4..25fdc34 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -23,7 +23,7 @@ tasks: cmds: - | nvim --headless \ - -u ./spec/minimal_init.vim\ + -u ./spec/minimal_init.lua\ -c "PlenaryBustedDirectory spec \ {minimal_init='./spec/minimal_init.lua'\ ,sequential=true}" diff --git a/spec/minimal_init.lua b/spec/minimal_init.lua new file mode 100644 index 0000000..163efc5 --- /dev/null +++ b/spec/minimal_init.lua @@ -0,0 +1,33 @@ +local function root(p) + local f = debug.getinfo(1, "S").source:sub(2) + return vim.fn.fnamemodify(f, ":p:h:h") .. "/" .. (p or "") +end + +local function install_plug(plugin) + local name = plugin:match ".*/(.*)" + local package_root = root ".tests/site/pack/deps/start/" + if not vim.loop.fs_stat(package_root .. name) then + print("Installing " .. plugin) + vim.fn.mkdir(package_root, "p") + vim.fn.system { + "git", + "clone", + "--depth=1", + "https://github.com/" .. plugin .. ".git", + package_root .. "/" .. name, + } + end +end + +vim.cmd [[set runtimepath=$VIMRUNTIME]] +vim.opt.runtimepath:append(root()) +vim.opt.packpath = { root ".tests/site" } +vim.notify = print + +install_plug "nvim-lua/plenary.nvim" +install_plug "nvim-treesitter/nvim-treesitter" + +vim.env.XDG_CONFIG_HOME = root ".tests/config" +vim.env.XDG_DATA_HOME = root ".tests/data" +vim.env.XDG_STATE_HOME = root ".tests/state" +vim.env.XDG_CACHE_HOME = root ".tests/cache" diff --git a/spec/minimal_init.vim b/spec/minimal_init.vim deleted file mode 100644 index e30e21b..0000000 --- a/spec/minimal_init.vim +++ /dev/null @@ -1,4 +0,0 @@ -set rtp+=. -packadd plenary.nvim -packadd nvim-treesitter -packadd nvim-dap