From 00d24d8ad66a88177aa379db819d6eedf87d44d1 Mon Sep 17 00:00:00 2001 From: Smirnov Oleksandr Date: Sat, 4 Feb 2023 12:16:56 +0200 Subject: [PATCH] refactor(tests): make tests independent from user nvim config --- .gitignore | 3 ++- Makefile | 2 +- spec/minimal_init.lua | 35 +++++++++++++++++++++++++++++++++++ spec/minimal_init.vim | 4 ---- 4 files changed, 38 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/Makefile b/Makefile index 2dc03c4..b743822 100644 --- a/Makefile +++ b/Makefile @@ -8,4 +8,4 @@ lint: selene **/*.lua test: - nvim --headless -u ./spec/minimal_init.vim -c "PlenaryBustedDirectory spec {minimal_init='./spec/minimal_init.vim'}" + nvim --headless -u ./spec/minimal_init.lua -c "PlenaryBustedDirectory spec {minimal_init='./spec/minimal_init.lua'}" diff --git a/spec/minimal_init.lua b/spec/minimal_init.lua new file mode 100644 index 0000000..feda336 --- /dev/null +++ b/spec/minimal_init.lua @@ -0,0 +1,35 @@ + +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" +install_plug "mfussenegger/nvim-dap" + +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