58 lines
1.3 KiB
Lua
58 lines
1.3 KiB
Lua
|
|
local window = require "ivy.window"
|
||
|
|
local controller = require "ivy.controller"
|
||
|
|
|
||
|
|
describe("controller", function()
|
||
|
|
before_each(function()
|
||
|
|
vim.cmd "highlight IvyMatch cterm=bold gui=bold"
|
||
|
|
window.initialize()
|
||
|
|
end)
|
||
|
|
|
||
|
|
after_each(function()
|
||
|
|
controller.destroy()
|
||
|
|
end)
|
||
|
|
|
||
|
|
it("will run the completion", function()
|
||
|
|
controller.run("Testing", function()
|
||
|
|
return { { content = "Some content" } }
|
||
|
|
end, function()
|
||
|
|
return {}
|
||
|
|
end)
|
||
|
|
|
||
|
|
-- Run all the scheduled tasks
|
||
|
|
vim.wait(0)
|
||
|
|
|
||
|
|
local lines = vim.api.nvim_buf_get_lines(0, 0, -1, true)
|
||
|
|
assert.is_equal(#lines, 1)
|
||
|
|
assert.is_equal(lines[1], "Some content")
|
||
|
|
end)
|
||
|
|
|
||
|
|
it("will not try and highlight the buffer if there is nothing to highlight", function()
|
||
|
|
spy.on(vim, "cmd")
|
||
|
|
|
||
|
|
controller.items = function()
|
||
|
|
return { { content = "Hello" } }
|
||
|
|
end
|
||
|
|
|
||
|
|
controller.update ""
|
||
|
|
|
||
|
|
vim.wait(0)
|
||
|
|
|
||
|
|
assert.spy(vim.cmd).was_called_with "syntax clear IvyMatch"
|
||
|
|
assert.spy(vim.cmd).was_not_called_with "syntax match IvyMatch '[H]'"
|
||
|
|
end)
|
||
|
|
|
||
|
|
it("will escape a - when passing it to be highlighted", function()
|
||
|
|
spy.on(vim, "cmd")
|
||
|
|
|
||
|
|
controller.items = function()
|
||
|
|
return { { content = "Hello" } }
|
||
|
|
end
|
||
|
|
|
||
|
|
controller.update "some-file"
|
||
|
|
|
||
|
|
vim.wait(0)
|
||
|
|
|
||
|
|
assert.spy(vim.cmd).was_called_with "syntax match IvyMatch '[some\\-file]'"
|
||
|
|
end)
|
||
|
|
end)
|