1
0
Fork 0
mirror of https://github.com/pnx/neotest-phpunit synced 2026-06-16 03:54:55 +02:00

Make this even slicker

This commit is contained in:
V13Axel 2024-02-16 17:04:10 -05:00
parent 6bef79c766
commit d12585b5b8
2 changed files with 45 additions and 53 deletions

View file

@ -1,10 +1,41 @@
local is_callable = function(obj)
return type(obj) == "function" or (type(obj) == "table" and obj.__call)
end
local M = {}
M.opts = {}
M.available_opts = {
"enable_sail",
"pest_cmd",
"root_ignore_files",
"root_files",
"filter_dirs",
"env",
}
M.get = function(key)
if M.opts[key] then
if is_callable(M.opts[key]) then
return M.opts[key]()
end
return M.opts[key]
end
if M[key] then
return M[key]()
end
return {}
end
M.enable_sail = function()
return vim.fn.filereadable("vendor/bin/sail") == 1
end
M.get_pest_cmd = function()
M.pest_cmd = function()
local binary = "pest"
if vim.fn.filereadable("vendor/bin/pest") == 1 then
@ -14,19 +45,19 @@ M.get_pest_cmd = function()
return binary
end
M.get_env = function()
M.env = function()
return {}
end
M.get_root_ignore_files = function()
M.root_ignore_files = function()
return {}
end
M.get_root_files = function()
M.root_files = function()
return { "tests/Pest.php" }
end
M.get_filter_dirs = function()
M.filter_dirs = function()
return { ".git", "node_modules", "vendor" }
end

View file

@ -18,7 +18,7 @@ function NeotestAdapter.root(dir)
logger.info("Finding root...")
for _, root_ignore_file in ipairs(config.get_root_ignore_files()) do
for _, root_ignore_file in ipairs(config.get("root_ignore_files")) do
logger.info("Checking root ignore file", root_ignore_file)
result = lib.files.match_root_pattern(root_ignore_file)(dir)
@ -29,7 +29,7 @@ function NeotestAdapter.root(dir)
end
end
for _, root_file in ipairs(config.get_root_files()) do
for _, root_file in ipairs(config.get("root_files")) do
logger.info("Checking root file", root_file)
result = lib.files.match_root_pattern(root_file)(dir)
@ -83,10 +83,6 @@ function NeotestAdapter.discover_positions(path)
})
end
local is_callable = function(obj)
return type(obj) == "function" or (type(obj) == "table" and obj.__call)
end
---@param args neotest.RunArgs
---@return neotest.RunSpec | nil
function NeotestAdapter.build_spec(args)
@ -164,44 +160,9 @@ end
setmetatable(NeotestAdapter, {
__call = function(_, opts)
logger.info("Initializing opts")
if is_callable(opts.pest_cmd) then
config.get_pest_cmd = opts.pest_cmd
elseif opts.pest_cmd then
config.get_pest_cmd = function()
return opts.pest_cmd
end
end
if is_callable(opts.root_ignore_files) then
config.get_root_ignore_files = opts.root_ignore_files
elseif opts.root_ignore_files then
config.get_root_ignore_files = function()
return opts.root_ignore_files
end
end
if is_callable(opts.root_files) then
config.get_root_files = opts.root_files
elseif opts.root_files then
config.get_root_files = function()
return opts.root_files
end
end
if is_callable(opts.filter_dirs) then
config.get_filter_dirs = opts.filter_dirs
elseif opts.filter_dirs then
config.get_filter_dirs = function()
return opts.filter_dirs
end
end
if is_callable(opts.env) then
config.get_env = opts.env
elseif type(opts.env) == "table" then
config.get_env = function()
return opts.env
end
end
if type(opts.dap) == "table" then
dap_configuration = opts.dap
end
config.opts = opts or {}
return NeotestAdapter
end,
})