spacevim/bundle/plenary.nvim/tests/plenary/popup_spec.lua
JIe 2bb7059579
Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
init
2024-08-21 14:17:26 +08:00

150 lines
4.1 KiB
Lua

local popup = require "plenary.popup"
local eq = assert.are.same
describe("plenary.popup", function()
before_each(function()
vim.cmd [[highlight PopupColor1 ctermbg=lightblue guibg=lightblue]]
vim.cmd [[highlight PopupColor2 ctermbg=lightcyan guibg=lightcyan]]
end)
-- TODO: Probably want to clear all the popups between iterations
-- after_each(function() end)
it("can create a very simple window", function()
local win_id = popup.create("hello there", {
line = 1,
col = 1,
width = 20,
})
local win_config = vim.api.nvim_win_get_config(win_id)
eq(20, win_config.width)
end)
it("can apply a highlight", function()
local win_id = popup.create("hello there", {
highlight = "PopupColor1",
})
eq("Normal:PopupColor1,EndOfBuffer:PopupColor1", vim.api.nvim_win_get_option(win_id, "winhl"))
end)
it("can create a border", function()
local win_id, config = popup.create("hello border", {
line = 2,
col = 3,
border = {},
})
eq(true, vim.api.nvim_win_is_valid(win_id))
local border_id = config.border.win_id
assert(border_id, "Has a border win id")
eq(true, vim.api.nvim_win_is_valid(border_id))
end)
it("can apply a border highlight", function()
local _, opts = popup.create("hello there", {
border = true,
borderhighlight = "PopupColor2",
})
local border_win_id = opts.border.win_id
eq("Normal:PopupColor2", vim.api.nvim_win_get_option(border_win_id, "winhl"))
end)
it("can ignore border highlight with no border", function()
local _ = popup.create("hello there", {
border = false,
borderhighlight = "PopupColor3",
})
end)
it("can do basic padding", function()
local win_id = popup.create("12345", {
line = 1,
col = 1,
padding = {},
})
local bufnr = vim.api.nvim_win_get_buf(win_id)
eq({ "", " 12345 ", "" }, vim.api.nvim_buf_get_lines(bufnr, 0, -1, false))
end)
it("can do padding and border", function()
local win_id, config = popup.create("hello border", {
line = 2,
col = 2,
border = {},
padding = {},
})
local bufnr = vim.api.nvim_win_get_buf(win_id)
eq({ "", " hello border ", "" }, vim.api.nvim_buf_get_lines(bufnr, 0, -1, false))
local border_id = config.border.win_id
assert(border_id, "Has a border win id")
eq(true, vim.api.nvim_win_is_valid(border_id))
end)
describe("borderchars", function()
local test_border = function(name, borderchars, expected)
it(name, function()
local _, config = popup.create("all the plus signs", {
line = 8,
col = 55,
padding = { 0, 3, 0, 3 },
borderchars = borderchars,
})
local border_id = config.border.win_id
local border_bufnr = vim.api.nvim_win_get_buf(border_id)
eq(expected, vim.api.nvim_buf_get_lines(border_bufnr, 0, -1, false))
end)
end
test_border("can support multiple border patterns", { "+" }, {
"++++++++++++++++++++++++++",
"+ +",
"++++++++++++++++++++++++++",
})
test_border("can support multiple patterns inside the borderchars", { "-", "+" }, {
"+------------------------+",
"- -",
"+------------------------+",
})
end)
describe("what", function()
it("can be an existing bufnr", function()
local bufnr = vim.api.nvim_create_buf(false, false)
vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, { "pass bufnr 1", "pass bufnr 2" })
local win_id = popup.create(bufnr, {
line = 8,
col = 55,
minwidth = 20,
})
eq(bufnr, vim.api.nvim_win_get_buf(win_id))
eq({ "pass bufnr 1", "pass bufnr 2" }, vim.api.nvim_buf_get_lines(bufnr, 0, -1, false))
end)
end)
describe("cursor", function()
pending("not yet tested", function()
popup.create({ "option 1", "option 2" }, {
line = "cursor+2",
col = "cursor+2",
border = { 1, 1, 1, 1 },
enter = true,
cursorline = true,
callback = function(win_id, sel)
print(sel)
end,
})
end)
end)
end)