mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-10 13:05:47 +08:00
143 lines
3.3 KiB
Lua
Vendored
143 lines
3.3 KiB
Lua
Vendored
pcall(require, "luacov")
|
|
|
|
local utils = require("nui.layout.utils")
|
|
local h = require("tests.helpers")
|
|
|
|
local eq = h.eq
|
|
|
|
describe("nui.layout", function()
|
|
describe("utils", function()
|
|
describe("parse_relative", function()
|
|
local fallback_winid = 17
|
|
|
|
it("works for type=buf", function()
|
|
local relative = {
|
|
type = "buf",
|
|
position = { row = 2, col = 4 },
|
|
winid = 42,
|
|
}
|
|
|
|
local result = utils.parse_relative(relative, fallback_winid)
|
|
|
|
eq(result, {
|
|
relative = "win",
|
|
win = relative.winid,
|
|
bufpos = {
|
|
relative.position.row,
|
|
relative.position.col,
|
|
},
|
|
})
|
|
end)
|
|
|
|
it("works for type=cursor", function()
|
|
local relative = {
|
|
type = "cursor",
|
|
winid = 42,
|
|
}
|
|
|
|
local result = utils.parse_relative(relative, fallback_winid)
|
|
|
|
eq(result, {
|
|
relative = relative.type,
|
|
win = relative.winid,
|
|
})
|
|
end)
|
|
|
|
it("works for type=editor", function()
|
|
local relative = {
|
|
type = "editor",
|
|
winid = 42,
|
|
}
|
|
|
|
local result = utils.parse_relative(relative, fallback_winid)
|
|
|
|
eq(result, {
|
|
relative = relative.type,
|
|
win = relative.winid,
|
|
})
|
|
end)
|
|
|
|
it("works for type=win", function()
|
|
local relative = {
|
|
type = "win",
|
|
winid = 42,
|
|
}
|
|
|
|
local result = utils.parse_relative(relative, fallback_winid)
|
|
|
|
eq(result, {
|
|
relative = relative.type,
|
|
win = relative.winid,
|
|
})
|
|
end)
|
|
|
|
it("uses fallback_winid if relative.winid is nil", function()
|
|
local relative = {
|
|
type = "win",
|
|
}
|
|
|
|
local result = utils.parse_relative(relative, fallback_winid)
|
|
|
|
eq(result, {
|
|
relative = relative.type,
|
|
win = fallback_winid,
|
|
})
|
|
end)
|
|
end)
|
|
|
|
describe("get_container_info", function()
|
|
it("works for relative=win", function()
|
|
local result = utils.get_container_info({
|
|
relative = "editor",
|
|
})
|
|
|
|
eq(result, {
|
|
relative = "editor",
|
|
size = {
|
|
width = vim.o.columns,
|
|
height = vim.o.lines,
|
|
},
|
|
type = "editor",
|
|
})
|
|
end)
|
|
|
|
it("works for relative=cursor", function()
|
|
local winid = vim.api.nvim_get_current_win()
|
|
|
|
local result = utils.get_container_info({
|
|
relative = "cursor",
|
|
win = winid,
|
|
})
|
|
|
|
eq(result, {
|
|
relative = "cursor",
|
|
size = {
|
|
width = vim.api.nvim_win_get_width(winid),
|
|
height = vim.api.nvim_win_get_height(winid),
|
|
},
|
|
type = "window",
|
|
})
|
|
end)
|
|
|
|
it("works for relative=win w/ bufpos", function()
|
|
local winid = vim.api.nvim_get_current_win()
|
|
|
|
local result = utils.get_container_info({
|
|
relative = "win",
|
|
win = winid,
|
|
bufpos = { 2, 4 },
|
|
})
|
|
|
|
eq(result, {
|
|
relative = "buf",
|
|
size = {
|
|
width = vim.api.nvim_win_get_width(winid),
|
|
height = vim.api.nvim_win_get_height(winid),
|
|
},
|
|
type = "window",
|
|
})
|
|
end)
|
|
end)
|
|
end)
|
|
end)
|