commit ac75de0d2aeae6d13ba74e05c495eb4a5947038e
parent a5e582dab6debf9048ac81b29c8cf1ab41983369
Author: Lewis Russell <lewis6991@gmail.com>
Date: Wed, 20 Nov 2024 16:35:00 +0000
test: add more structure to vim.bo/wo tests
Diffstat:
1 file changed, 99 insertions(+), 65 deletions(-)
diff --git a/test/functional/lua/option_and_var_spec.lua b/test/functional/lua/option_and_var_spec.lua
@@ -149,7 +149,7 @@ describe('lua stdlib', function()
vim.api.nvim_buf_set_var(0, 'nullvar', vim.NIL)
vim.api.nvim_buf_set_var(0, 'to_delete', { hello = 'world' })
_G.BUF = vim.api.nvim_create_buf(false, true)
- vim.api.nvim_buf_set_var(BUF, 'testing', 'bye')
+ vim.api.nvim_buf_set_var(_G.BUF, 'testing', 'bye')
end)
eq('hi', fn.luaeval 'vim.b.testing')
@@ -164,7 +164,10 @@ describe('lua stdlib', function()
return { vim.b.nonexistent == vim.NIL, vim.b.nullvar == vim.NIL }
end)
- matches([[attempt to index .* nil value]], pcall_err(exec_lua, 'return vim.b[BUF][0].testing'))
+ matches(
+ [[attempt to index .* nil value]],
+ pcall_err(exec_lua, 'return vim.b[BUF][0].testing')
+ )
eq({ hello = 'world' }, fn.luaeval 'vim.b.to_delete')
exec_lua [[
@@ -174,12 +177,18 @@ describe('lua stdlib', function()
exec_lua(function()
local counter = 0
- local function add_counter() counter = counter + 1 end
- local function get_counter() return counter end
+ local function add_counter()
+ counter = counter + 1
+ end
+ local function get_counter()
+ return counter
+ end
vim.b.AddCounter = add_counter
vim.b.GetCounter = get_counter
- vim.b.fn = {add = add_counter, get = get_counter}
- vim.b.AddParens = function(s) return '(' .. s .. ')' end
+ vim.b.fn = { add = add_counter, get = get_counter }
+ vim.b.AddParens = function(s)
+ return '(' .. s .. ')'
+ end
end)
eq(0, eval('b:GetCounter()'))
@@ -199,12 +208,18 @@ describe('lua stdlib', function()
exec_lua(function()
local counter = 0
- local function add_counter() counter = counter + 1 end
- local function get_counter() return counter end
+ local function add_counter()
+ counter = counter + 1
+ end
+ local function get_counter()
+ return counter
+ end
vim.api.nvim_buf_set_var(0, 'AddCounter', add_counter)
vim.api.nvim_buf_set_var(0, 'GetCounter', get_counter)
- vim.api.nvim_buf_set_var(0, 'fn', {add = add_counter, get = get_counter})
- vim.api.nvim_buf_set_var(0, 'AddParens', function(s) return '(' .. s .. ')' end)
+ vim.api.nvim_buf_set_var(0, 'fn', { add = add_counter, get = get_counter })
+ vim.api.nvim_buf_set_var(0, 'AddParens', function(s)
+ return '(' .. s .. ')'
+ end)
end)
eq(0, eval('b:GetCounter()'))
@@ -261,7 +276,10 @@ describe('lua stdlib', function()
eq(NIL, fn.luaeval 'vim.w.nonexistent')
eq(NIL, fn.luaeval 'vim.w[WIN].nonexistent')
- matches([[attempt to index .* nil value]], pcall_err(exec_lua, 'return vim.w[WIN][0].testing'))
+ matches(
+ [[attempt to index .* nil value]],
+ pcall_err(exec_lua, 'return vim.w[WIN][0].testing')
+ )
eq({ hello = 'world' }, fn.luaeval 'vim.w.to_delete')
exec_lua [[
@@ -456,7 +474,10 @@ describe('lua stdlib', function()
eq({ 'one', 'two' }, eval('v:oldfiles'))
exec_lua([[vim.v.oldfiles = {}]])
eq({}, eval('v:oldfiles'))
- eq('Setting v:oldfiles to value with wrong type', pcall_err(exec_lua, [[vim.v.oldfiles = 'a']]))
+ eq(
+ 'Setting v:oldfiles to value with wrong type',
+ pcall_err(exec_lua, [[vim.v.oldfiles = 'a']])
+ )
eq({}, eval('v:oldfiles'))
feed('i foo foo foo<Esc>0/foo<CR>')
@@ -504,63 +525,74 @@ describe('lua stdlib', function()
end)
describe('options', function()
- it('vim.bo', function()
- eq('', fn.luaeval 'vim.bo.filetype')
- exec_lua(function()
- _G.BUF = vim.api.nvim_create_buf(false, true)
- vim.api.nvim_set_option_value('filetype', 'markdown', {})
- vim.api.nvim_set_option_value('modifiable', false, { buf = _G.BUF })
+ describe('vim.bo', function()
+ it('can get and set options', function()
+ eq('', fn.luaeval 'vim.bo.filetype')
+ exec_lua(function()
+ _G.BUF = vim.api.nvim_create_buf(false, true)
+ vim.api.nvim_set_option_value('filetype', 'markdown', {})
+ vim.api.nvim_set_option_value('modifiable', false, { buf = _G.BUF })
+ end)
+ eq(false, fn.luaeval 'vim.bo.modified')
+ eq('markdown', fn.luaeval 'vim.bo.filetype')
+ eq(false, fn.luaeval 'vim.bo[BUF].modifiable')
+ exec_lua(function()
+ vim.bo.filetype = ''
+ vim.bo[_G.BUF].modifiable = true
+ end)
+ eq('', fn.luaeval 'vim.bo.filetype')
+ eq(true, fn.luaeval 'vim.bo[BUF].modifiable')
end)
- eq(false, fn.luaeval 'vim.bo.modified')
- eq('markdown', fn.luaeval 'vim.bo.filetype')
- eq(false, fn.luaeval 'vim.bo[BUF].modifiable')
- exec_lua(function()
- vim.bo.filetype = ''
- vim.bo[_G.BUF].modifiable = true
+
+ it('errors', function()
+ matches("Unknown option 'nosuchopt'$", pcall_err(exec_lua, 'return vim.bo.nosuchopt'))
+ matches('Expected Lua string$', pcall_err(exec_lua, 'return vim.bo[0][0].autoread'))
+ matches('Invalid buffer id: %-1$', pcall_err(exec_lua, 'return vim.bo[-1].filetype'))
end)
- eq('', fn.luaeval 'vim.bo.filetype')
- eq(true, fn.luaeval 'vim.bo[BUF].modifiable')
- matches("Unknown option 'nosuchopt'$", pcall_err(exec_lua, 'return vim.bo.nosuchopt'))
- matches('Expected Lua string$', pcall_err(exec_lua, 'return vim.bo[0][0].autoread'))
- matches('Invalid buffer id: %-1$', pcall_err(exec_lua, 'return vim.bo[-1].filetype'))
end)
- it('vim.wo', function()
- exec_lua(function()
- vim.api.nvim_set_option_value('cole', 2, {})
- vim.cmd 'split'
- vim.api.nvim_set_option_value('cole', 2, {})
- end)
- eq(2, fn.luaeval 'vim.wo.cole')
- exec_lua(function()
- vim.wo.conceallevel = 0
- end)
- eq(0, fn.luaeval 'vim.wo.cole')
- eq(0, fn.luaeval 'vim.wo[0].cole')
- eq(0, fn.luaeval 'vim.wo[1001].cole')
- matches("Unknown option 'notanopt'$", pcall_err(exec_lua, 'return vim.wo.notanopt'))
- matches('Invalid window id: %-1$', pcall_err(exec_lua, 'return vim.wo[-1].list'))
- eq(2, fn.luaeval 'vim.wo[1000].cole')
- exec_lua(function()
- vim.wo[1000].cole = 0
- end)
- eq(0, fn.luaeval 'vim.wo[1000].cole')
-
- -- Can handle global-local values
- exec_lua [[vim.o.scrolloff = 100]]
- exec_lua [[vim.wo.scrolloff = 200]]
- eq(200, fn.luaeval 'vim.wo.scrolloff')
- exec_lua [[vim.wo.scrolloff = -1]]
- eq(100, fn.luaeval 'vim.wo.scrolloff')
- exec_lua(function()
- vim.wo[0][0].scrolloff = 200
- vim.cmd 'enew'
+ describe('vim.wo', function()
+ it('can get and set options', function()
+ exec_lua(function()
+ vim.api.nvim_set_option_value('cole', 2, {})
+ vim.cmd 'split'
+ vim.api.nvim_set_option_value('cole', 2, {})
+ end)
+ eq(2, fn.luaeval 'vim.wo.cole')
+ exec_lua(function()
+ vim.wo.conceallevel = 0
+ end)
+ eq(0, fn.luaeval 'vim.wo.cole')
+ eq(0, fn.luaeval 'vim.wo[0].cole')
+ eq(0, fn.luaeval 'vim.wo[1001].cole')
+ matches("Unknown option 'notanopt'$", pcall_err(exec_lua, 'return vim.wo.notanopt'))
+ matches('Invalid window id: %-1$', pcall_err(exec_lua, 'return vim.wo[-1].list'))
+ eq(2, fn.luaeval 'vim.wo[1000].cole')
+ exec_lua(function()
+ vim.wo[1000].cole = 0
+ end)
+ eq(0, fn.luaeval 'vim.wo[1000].cole')
+
+ -- Can handle global-local values
+ exec_lua [[vim.o.scrolloff = 100]]
+ exec_lua [[vim.wo.scrolloff = 200]]
+ eq(200, fn.luaeval 'vim.wo.scrolloff')
+ exec_lua [[vim.wo.scrolloff = -1]]
+ eq(100, fn.luaeval 'vim.wo.scrolloff')
+ exec_lua(function()
+ vim.wo[0][0].scrolloff = 200
+ vim.cmd 'enew'
+ end)
+ eq(100, fn.luaeval 'vim.wo.scrolloff')
end)
- eq(100, fn.luaeval 'vim.wo.scrolloff')
-
- matches('only bufnr=0 is supported', pcall_err(exec_lua, 'vim.wo[0][10].signcolumn = "no"'))
- matches('only bufnr=0 is supported', pcall_err(exec_lua, 'local a = vim.wo[0][10].signcolumn'))
+ it('errors', function()
+ matches('only bufnr=0 is supported', pcall_err(exec_lua, 'vim.wo[0][10].signcolumn = "no"'))
+ matches(
+ 'only bufnr=0 is supported',
+ pcall_err(exec_lua, 'local a = vim.wo[0][10].signcolumn')
+ )
+ end)
end)
describe('vim.opt', function()
@@ -1065,7 +1097,10 @@ describe('lua stdlib', function()
)
matches(
"Invalid option type 'function' for 'listchars'",
- pcall_err(exec_lua, [[vim.opt.listchars = function() return "eol:~,space:.,tab:>~" end]])
+ pcall_err(
+ exec_lua,
+ [[vim.opt.listchars = function() return "eol:~,space:.,tab:>~" end]]
+ )
)
end)
@@ -1190,5 +1225,4 @@ describe('lua stdlib', function()
end)
end)
end)
-
end)