aboutsummaryrefslogtreecommitdiff
path: root/test/functional
diff options
context:
space:
mode:
authorGregory Anders <greg@gpanders.com>2021-10-11 22:09:08 -0600
committerGregory Anders <greg@gpanders.com>2021-12-04 14:04:23 -0700
commit71ac00ccb523383411b907b5fdf00a376e24a6f0 (patch)
tree2814a60964d9522692d5c81401e565d40693d6a1 /test/functional
parent7b910a1716eabb18fd05f8c27370a7ab1e771074 (diff)
downloadrneovim-71ac00ccb523383411b907b5fdf00a376e24a6f0.tar.gz
rneovim-71ac00ccb523383411b907b5fdf00a376e24a6f0.tar.bz2
rneovim-71ac00ccb523383411b907b5fdf00a376e24a6f0.zip
feat(api): add nvim_get_option_value
Diffstat (limited to 'test/functional')
-rw-r--r--test/functional/api/buffer_spec.lua7
-rw-r--r--test/functional/api/vim_spec.lua27
-rw-r--r--test/functional/api/window_spec.lua10
-rw-r--r--test/functional/lua/vim_spec.lua8
4 files changed, 45 insertions, 7 deletions
diff --git a/test/functional/api/buffer_spec.lua b/test/functional/api/buffer_spec.lua
index a0c97804b7..688f3abba5 100644
--- a/test/functional/api/buffer_spec.lua
+++ b/test/functional/api/buffer_spec.lua
@@ -629,6 +629,13 @@ describe('api/buf', function()
-- Doesn't change the global value
eq([[^\s*#\s*define]], nvim('get_option', 'define'))
end)
+
+ it('returns values for unset local options', function()
+ -- 'undolevels' is only set to its "unset" value when a new buffer is
+ -- created
+ command('enew')
+ eq(-123456, curbuf('get_option', 'undolevels'))
+ end)
end)
describe('nvim_buf_get_name, nvim_buf_set_name', function()
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua
index 21de4925b5..d53208a915 100644
--- a/test/functional/api/vim_spec.lua
+++ b/test/functional/api/vim_spec.lua
@@ -949,6 +949,33 @@ describe('API', function()
end)
end)
+ describe('nvim_get_option_value, nvim_set_option_value', function()
+ it('works', function()
+ ok(nvim('get_option_value', 'equalalways', {}))
+ nvim('set_option_value', 'equalalways', false, {})
+ ok(not nvim('get_option_value', 'equalalways', {}))
+ end)
+
+ it('can get local values when global value is set', function()
+ eq(0, nvim('get_option_value', 'scrolloff', {}))
+ eq(-1, nvim('get_option_value', 'scrolloff', {scope = 'local'}))
+ end)
+
+ it('can set global and local values', function()
+ nvim('set_option_value', 'makeprg', 'hello', {})
+ eq('hello', nvim('get_option_value', 'makeprg', {}))
+ eq('', nvim('get_option_value', 'makeprg', {scope = 'local'}))
+ nvim('set_option_value', 'makeprg', 'world', {scope = 'local'})
+ eq('world', nvim('get_option_value', 'makeprg', {scope = 'local'}))
+ nvim('set_option_value', 'makeprg', 'goodbye', {scope = 'global'})
+ eq('goodbye', nvim('get_option_value', 'makeprg', {scope = 'global'}))
+ nvim('set_option_value', 'makeprg', 'hello', {})
+ eq('hello', nvim('get_option_value', 'makeprg', {scope = 'global'}))
+ eq('hello', nvim('get_option_value', 'makeprg', {}))
+ eq('', nvim('get_option_value', 'makeprg', {scope = 'local'}))
+ end)
+ end)
+
describe('nvim_{get,set}_current_buf, nvim_list_bufs', function()
it('works', function()
eq(1, #nvim('list_bufs'))
diff --git a/test/functional/api/window_spec.lua b/test/functional/api/window_spec.lua
index 11755a9d97..4d2ffa316a 100644
--- a/test/functional/api/window_spec.lua
+++ b/test/functional/api/window_spec.lua
@@ -222,9 +222,9 @@ describe('API/win', function()
eq('', nvim('get_option', 'statusline'))
command("set modified")
command("enew") -- global-local: not preserved in new buffer
- eq("Failed to get value for option 'statusline'",
- pcall_err(curwin, 'get_option', 'statusline'))
- eq('', eval('&l:statusline')) -- confirm local value was not copied
+ -- confirm local value was not copied
+ eq('', curwin('get_option', 'statusline'))
+ eq('', eval('&l:statusline'))
end)
it('after switching windows #15390', function()
@@ -238,6 +238,10 @@ describe('API/win', function()
eq('window-status', window('get_option', win1, 'statusline'))
assert_alive()
end)
+
+ it('returns values for unset local options', function()
+ eq(-1, curwin('get_option', 'scrolloff'))
+ end)
end)
describe('get_position', function()
diff --git a/test/functional/lua/vim_spec.lua b/test/functional/lua/vim_spec.lua
index 28471bdd46..2515b37beb 100644
--- a/test/functional/lua/vim_spec.lua
+++ b/test/functional/lua/vim_spec.lua
@@ -1240,7 +1240,7 @@ describe('lua stdlib', function()
vim.opt.makeprg = "global-local"
table.insert(result, vim.api.nvim_get_option('makeprg'))
- table.insert(result, (pcall(vim.api.nvim_buf_get_option, 0, 'makeprg')))
+ table.insert(result, vim.api.nvim_buf_get_option(0, 'makeprg'))
vim.opt_local.mp = "only-local"
table.insert(result, vim.api.nvim_get_option('makeprg'))
@@ -1258,7 +1258,7 @@ describe('lua stdlib', function()
-- Set -> global & local
eq("global-local", result[1])
- eq(false, result[2])
+ eq("", result[2])
-- Setlocal -> only local
eq("global-local", result[3])
@@ -1268,9 +1268,9 @@ describe('lua stdlib', function()
eq("only-global", result[5])
eq("only-local", result[6])
- -- set -> doesn't override previously set value
+ -- Set -> sets global value and resets local value
eq("global-local", result[7])
- eq("only-local", result[8])
+ eq("", result[8])
end)
it('should allow you to retrieve window opts even if they have not been set', function()