Lua: vim.validate()

This commit is contained in:
Justin M. Keyes
2019-11-10 19:58:14 -08:00
parent 678a51b1da
commit 7aa4042d3b
2 changed files with 108 additions and 82 deletions

View File

@@ -404,40 +404,53 @@ describe('lua stdlib', function()
end)
it('vim.validate', function()
eq(NIL, exec_lua("vim.validate({ arg1={ {}, 'table' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ {}, 't' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ nil, 't', true }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ { foo='foo' }, 't' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ { 'foo' }, 't' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ 'foo', 'string' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ 'foo', 's' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ '', 's' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ nil, 's', true }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ 1, 'number' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ 1, 'n' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ 0, 'n' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ 0.1, 'n' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ nil, 'n', true }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ true, 'boolean' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ true, 'b' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ false, 'b' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ nil, 'b', true }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ function()end, 'function' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ function()end, 'f' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ nil, 'f', true }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ nil, 'nil' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ nil, 'nil', true }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ coroutine.create(function()end), 'thread' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ nil, 'thread', true }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ {}, 't' } }, { arg2={ 'foo', 's' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ {}, 't' }, arg2={ 'foo', 's' }})"))
eq(NIL, exec_lua("vim.validate({ arg1={ 2, function(a) return (a % 2) == 0 end, 'even number' }})"))
exec_lua("vim.validate{arg1={{}, 'table' }}")
exec_lua("vim.validate{arg1={{}, 't' }}")
exec_lua("vim.validate{arg1={nil, 't', true }}")
exec_lua("vim.validate{arg1={{ foo='foo' }, 't' }}")
exec_lua("vim.validate{arg1={{ 'foo' }, 't' }}")
exec_lua("vim.validate{arg1={'foo', 'string' }}")
exec_lua("vim.validate{arg1={'foo', 's' }}")
exec_lua("vim.validate{arg1={'', 's' }}")
exec_lua("vim.validate{arg1={nil, 's', true }}")
exec_lua("vim.validate{arg1={1, 'number' }}")
exec_lua("vim.validate{arg1={1, 'n' }}")
exec_lua("vim.validate{arg1={0, 'n' }}")
exec_lua("vim.validate{arg1={0.1, 'n' }}")
exec_lua("vim.validate{arg1={nil, 'n', true }}")
exec_lua("vim.validate{arg1={true, 'boolean' }}")
exec_lua("vim.validate{arg1={true, 'b' }}")
exec_lua("vim.validate{arg1={false, 'b' }}")
exec_lua("vim.validate{arg1={nil, 'b', true }}")
exec_lua("vim.validate{arg1={function()end, 'function' }}")
exec_lua("vim.validate{arg1={function()end, 'f' }}")
exec_lua("vim.validate{arg1={nil, 'f', true }}")
exec_lua("vim.validate{arg1={nil, 'nil' }}")
exec_lua("vim.validate{arg1={nil, 'nil', true }}")
exec_lua("vim.validate{arg1={coroutine.create(function()end), 'thread' }}")
exec_lua("vim.validate{arg1={nil, 'thread', true }}")
exec_lua("vim.validate{arg1={{}, 't' }, arg2={ 'foo', 's' }}")
exec_lua("vim.validate{arg1={2, function(a) return (a % 2) == 0 end, 'even number' }}")
eq("Error executing lua: .../shared.lua: arg1: expected table, got number", pcall_err(exec_lua, "vim.validate({ arg1={ 1, 't' }})"))
eq("Error executing lua: .../shared.lua: arg2: expected string, got number", pcall_err(exec_lua, "vim.validate({ arg1={ {}, 't' }, arg2={ 1, 's' }})"))
eq("Error executing lua: .../shared.lua: arg2: expected string, got nil", pcall_err(exec_lua, "vim.validate({ arg1={ {}, 't' }, arg2={ nil, 's' }})"))
eq("Error executing lua: .../shared.lua: arg2: expected string, got nil", pcall_err(exec_lua, "vim.validate({ arg1={ {}, 't' }, arg2={ nil, 's' }})"))
eq("Error executing lua: .../shared.lua: arg1: expected even number, got 3", pcall_err(exec_lua, "vim.validate({ arg1={ 3, function(a) return a == 1 end, 'even number' }})"))
eq("Error executing lua: .../shared.lua: 1: expected table, got number",
pcall_err(exec_lua, "vim.validate{ 1, 'x' }"))
eq("Error executing lua: .../shared.lua: invalid type name: x",
pcall_err(exec_lua, "vim.validate{ arg1={ 1, 'x' }}"))
eq("Error executing lua: .../shared.lua: invalid type name: 1",
pcall_err(exec_lua, "vim.validate{ arg1={ 1, 1 }}"))
eq("Error executing lua: .../shared.lua: invalid type name: nil",
pcall_err(exec_lua, "vim.validate{ arg1={ 1 }}"))
eq("Error executing lua: .../shared.lua: arg1: expected table, got number",
pcall_err(exec_lua, "vim.validate{arg1={1, 't'}}"))
eq("Error executing lua: .../shared.lua: arg2: expected string, got number",
pcall_err(exec_lua, "vim.validate{arg1={{}, 't'}, arg2={1, 's'}}"))
eq("Error executing lua: .../shared.lua: arg2: expected string, got nil",
pcall_err(exec_lua, "vim.validate{arg1={{}, 't'}, arg2={nil, 's'}}"))
eq("Error executing lua: .../shared.lua: arg2: expected string, got nil",
pcall_err(exec_lua, "vim.validate{arg1={{}, 't'}, arg2={nil, 's'}}"))
eq("Error executing lua: .../shared.lua: arg1: expected even number, got 3",
pcall_err(exec_lua, "vim.validate{arg1={3, function(a) return a == 1 end, 'even number'}}"))
end)
it('vim.is_callable', function()