57 lines
1.5 KiB
Lua
57 lines
1.5 KiB
Lua
|
|
local utils = require "ivy.utils"
|
||
|
|
local vimgrep_action = utils.vimgrep_action()
|
||
|
|
local vim_mock = require "ivy.vim_mock"
|
||
|
|
|
||
|
|
before_each(function()
|
||
|
|
vim_mock.reset()
|
||
|
|
end)
|
||
|
|
|
||
|
|
local test_data = {
|
||
|
|
{
|
||
|
|
it = "will edit some file and goto the line",
|
||
|
|
completion = "some/file.lua:2: This is some text",
|
||
|
|
action = utils.actions.EDIT,
|
||
|
|
commands = {
|
||
|
|
"edit some/file.lua",
|
||
|
|
"2",
|
||
|
|
},
|
||
|
|
},
|
||
|
|
{
|
||
|
|
it = "will skip the line if its not matched",
|
||
|
|
completion = "some/file.lua: This is some text",
|
||
|
|
action = utils.actions.EDIT,
|
||
|
|
commands = { "edit some/file.lua" },
|
||
|
|
},
|
||
|
|
{
|
||
|
|
it = "will run the vsplit command",
|
||
|
|
completion = "some/file.lua: This is some text",
|
||
|
|
action = utils.actions.VSPLIT,
|
||
|
|
commands = { "vsplit some/file.lua" },
|
||
|
|
},
|
||
|
|
{
|
||
|
|
it = "will run the split command",
|
||
|
|
completion = "some/file.lua: This is some text",
|
||
|
|
action = utils.actions.SPLIT,
|
||
|
|
commands = { "split some/file.lua" },
|
||
|
|
},
|
||
|
|
}
|
||
|
|
|
||
|
|
for i = 1, #test_data do
|
||
|
|
local data = test_data[i]
|
||
|
|
it(data.it, function(t)
|
||
|
|
vimgrep_action(data.completion, data.action)
|
||
|
|
|
||
|
|
if #vim_mock.commands ~= #data.commands then
|
||
|
|
t.error("Incorrect number of commands run expected " .. #data.commands .. " but found " .. #vim_mock.commands)
|
||
|
|
end
|
||
|
|
|
||
|
|
for j = 1, #data.commands do
|
||
|
|
if vim_mock.commands[j] ~= data.commands[j] then
|
||
|
|
t.error(
|
||
|
|
"Incorrect command run expected '" .. data.commands[j] .. "' but found '" .. vim_mock.commands[j] .. "'"
|
||
|
|
)
|
||
|
|
end
|
||
|
|
end
|
||
|
|
end)
|
||
|
|
end
|