pages/dotfiles/pack/plugins/start/impatient.nvim/test/impatient_spec.lua

281 lines
16 KiB
Lua
Executable File

local helpers = require('test.functional.helpers')()
local clear = helpers.clear
local exec_lua = helpers.exec_lua
local eq = helpers.eq
local cmd = helpers.command
local nvim07
local function gen_exp(exp)
local neovim_dir = nvim07 and 'neovim-v0.7.0' or 'neovim-master'
local cwd = exec_lua('return vim.loop.cwd()')
local exp1 = {}
for _, v in pairs(exp) do
if type(v) == 'string' then
v = v:gsub('{CWD}', cwd)
v = v:gsub('{NVIM}', neovim_dir)
exp1[#exp1+1] = v
end
end
return exp1
end
local gen_exp_cold = function()
return gen_exp{
'Creating cache for module plugins',
'No cache for path ./test/lua/plugins.lua',
'Creating cache for path ./test/lua/plugins.lua',
'Creating cache for module telescope',
'No cache for path {CWD}/scratch/telescope.nvim/lua/telescope/init.lua',
'Creating cache for path {CWD}/scratch/telescope.nvim/lua/telescope/init.lua',
'Creating cache for module telescope/_extensions',
'No cache for path {CWD}/scratch/telescope.nvim/lua/telescope/_extensions/init.lua',
'Creating cache for path {CWD}/scratch/telescope.nvim/lua/telescope/_extensions/init.lua',
'Creating cache for module gitsigns',
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns.lua',
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns.lua',
'Creating cache for module plenary/async/async',
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/async.lua',
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/async.lua',
'Creating cache for module plenary/vararg',
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/vararg/init.lua',
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/vararg/init.lua',
'Creating cache for module plenary/vararg/rotate',
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/vararg/rotate.lua',
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/vararg/rotate.lua',
'Creating cache for module plenary/tbl',
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/tbl.lua',
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/tbl.lua',
'Creating cache for module plenary/errors',
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/errors.lua',
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/errors.lua',
'Creating cache for module plenary/functional',
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/functional.lua',
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/functional.lua',
'Creating cache for module plenary/async/util',
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/util.lua',
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/util.lua',
'Creating cache for module plenary/async/control',
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/control.lua',
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/control.lua',
'Creating cache for module plenary/async/structs',
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/structs.lua',
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/structs.lua',
'Creating cache for module gitsigns/status',
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/status.lua',
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/status.lua',
'Creating cache for module gitsigns/git',
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/git.lua',
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/git.lua',
'Creating cache for module plenary/job',
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/job.lua',
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/job.lua',
'Creating cache for module gitsigns/debug',
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/debug.lua',
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/debug.lua',
'Creating cache for module gitsigns/util',
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/util.lua',
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/util.lua',
'Creating cache for module gitsigns/hunks',
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/hunks.lua',
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/hunks.lua',
'Creating cache for module gitsigns/signs',
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/signs.lua',
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/signs.lua',
'Creating cache for module gitsigns/config',
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/config.lua',
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/config.lua',
'Creating cache for module gitsigns/manager',
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/manager.lua',
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/manager.lua',
'Creating cache for module gitsigns/cache',
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/cache.lua',
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/cache.lua',
'Creating cache for module gitsigns/debounce',
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/debounce.lua',
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/debounce.lua',
'Creating cache for module gitsigns/highlight',
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/highlight.lua',
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/highlight.lua',
'Creating cache for module spellsitter',
'No cache for path {CWD}/scratch/spellsitter.nvim/lua/spellsitter.lua',
'Creating cache for path {CWD}/scratch/spellsitter.nvim/lua/spellsitter.lua',
'Creating cache for module vim/treesitter/query',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/query.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/query.lua',
'Creating cache for module vim/treesitter/language',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/language.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/language.lua',
'Creating cache for module vim/treesitter',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter.lua',
'Creating cache for module vim/treesitter/languagetree',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/languagetree.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/languagetree.lua',
'Creating cache for module colorizer',
'No cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer.lua',
'Creating cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer.lua',
'Creating cache for module colorizer/nvim',
'No cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer/nvim.lua',
'Creating cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer/nvim.lua',
'Creating cache for module colorizer/trie',
'No cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer/trie.lua',
'Creating cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer/trie.lua',
'Creating cache for module lspconfig',
'No cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig.lua',
'Creating cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig.lua',
'Creating cache for module lspconfig/configs',
'No cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig/configs.lua',
'Creating cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig/configs.lua',
'Creating cache for module lspconfig/util',
'No cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig/util.lua',
'Creating cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig/util.lua',
'Creating cache for module vim/lsp',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp.lua',
'Creating cache for module vim/lsp/handlers',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/handlers.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/handlers.lua',
'Creating cache for module vim/lsp/log',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/log.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/log.lua',
'Creating cache for module vim/lsp/protocol',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/protocol.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/protocol.lua',
'Creating cache for module vim/lsp/util',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/util.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/util.lua',
'Creating cache for module vim/lsp/_snippet',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/_snippet.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/_snippet.lua',
'Creating cache for module vim/highlight',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/highlight.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/highlight.lua',
'Creating cache for module vim/lsp/rpc',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/rpc.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/rpc.lua',
'Creating cache for module vim/lsp/sync',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/sync.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/sync.lua',
'Creating cache for module vim/lsp/buf',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/buf.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/buf.lua',
'Creating cache for module vim/lsp/diagnostic',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/diagnostic.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/diagnostic.lua',
'Creating cache for module vim/lsp/codelens',
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/codelens.lua',
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/codelens.lua',
'Creating cache for module bufferline',
'No cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline.lua',
'Creating cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline.lua',
'Creating cache for module bufferline/constants',
'No cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline/constants.lua',
'Creating cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline/constants.lua',
'Creating cache for module bufferline/utils',
'No cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline/utils.lua',
'Creating cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline/utils.lua',
'Updating chunk cache file: scratch/cache/nvim/luacache_chunks',
'Updating chunk cache file: scratch/cache/nvim/luacache_modpaths'
}
end
local gen_exp_hot = function()
return gen_exp{
'Loading cache file scratch/cache/nvim/luacache_chunks',
'Loading cache file scratch/cache/nvim/luacache_modpaths',
'Loaded cache for path ./test/lua/plugins.lua',
'Loaded cache for path {CWD}/scratch/telescope.nvim/lua/telescope/init.lua',
'Loaded cache for path {CWD}/scratch/telescope.nvim/lua/telescope/_extensions/init.lua',
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns.lua',
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/async.lua',
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/vararg/init.lua',
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/vararg/rotate.lua',
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/tbl.lua',
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/errors.lua',
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/functional.lua',
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/util.lua',
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/control.lua',
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/structs.lua',
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/status.lua',
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/git.lua',
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/job.lua',
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/debug.lua',
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/util.lua',
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/hunks.lua',
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/signs.lua',
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/config.lua',
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/manager.lua',
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/cache.lua',
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/debounce.lua',
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/highlight.lua',
'Loaded cache for path {CWD}/scratch/spellsitter.nvim/lua/spellsitter.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/query.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/language.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/languagetree.lua',
'Loaded cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer.lua',
'Loaded cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer/nvim.lua',
'Loaded cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer/trie.lua',
'Loaded cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig.lua',
'Loaded cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig/configs.lua',
'Loaded cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig/util.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/handlers.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/log.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/protocol.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/util.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/_snippet.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/highlight.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/rpc.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/sync.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/buf.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/diagnostic.lua',
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/codelens.lua',
'Loaded cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline.lua',
'Loaded cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline/constants.lua',
'Loaded cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline/utils.lua'
}
end
describe('impatient', function()
local function reset()
clear()
nvim07 = exec_lua('return vim.version().minor') == 7
cmd [[set runtimepath=$VIMRUNTIME,.,./test]]
cmd [[let $XDG_CACHE_HOME='scratch/cache']]
cmd [[set packpath=]]
end
before_each(function()
reset()
end)
it('load plugins without impatient', function()
exec_lua([[require('plugins')]])
end)
local function run()
exec_lua[[
require('impatient')
require('plugins')
_G.__luacache.save_cache()
]]
end
it('creates cache', function()
os.execute[[rm -rf scratch/cache]]
run()
eq(gen_exp_cold(), exec_lua("return _G.__luacache.log"))
end)
it('loads cache', function()
run()
eq(gen_exp_hot(), exec_lua("return _G.__luacache.log"))
end)
end)