aboutsummaryrefslogtreecommitdiff
path: root/test/functional/provider/ruby_spec.lua
diff options
context:
space:
mode:
authorAlex Genco <alexgenco@gmail.com>2020-10-17 07:36:36 -0700
committerAlex Genco <alexgenco@gmail.com>2020-10-21 10:20:21 -0700
commited0a70087a15621e7f45567feef1900f348c0916 (patch)
treee7dc4120ae450b81b0796e62d7ac28c253005e96 /test/functional/provider/ruby_spec.lua
parent0f590ae2a8bcebcb1398cb30997bd718d6f466e5 (diff)
downloadrneovim-ed0a70087a15621e7f45567feef1900f348c0916.tar.gz
rneovim-ed0a70087a15621e7f45567feef1900f348c0916.tar.bz2
rneovim-ed0a70087a15621e7f45567feef1900f348c0916.zip
vim-patch:8.1.1056: no eval function for Ruby
Problem: No eval function for Ruby. Solution: Add rubyeval(). (Ozaki Kiichi, closes vim/vim#4152) https://github.com/vim/vim/commit/e99be0e6d28fad96efd2b2be23fa38e7559e80e1
Diffstat (limited to 'test/functional/provider/ruby_spec.lua')
-rw-r--r--test/functional/provider/ruby_spec.lua22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/functional/provider/ruby_spec.lua b/test/functional/provider/ruby_spec.lua
index bb7d23ede6..2729d8dfa2 100644
--- a/test/functional/provider/ruby_spec.lua
+++ b/test/functional/provider/ruby_spec.lua
@@ -5,6 +5,7 @@ local command = helpers.command
local curbufmeths = helpers.curbufmeths
local eq = helpers.eq
local eval = helpers.eval
+local exc_exec = helpers.exc_exec
local expect = helpers.expect
local feed = helpers.feed
local feed_command = helpers.feed_command
@@ -109,3 +110,24 @@ describe('ruby provider', function()
eq(2, eval('1+1')) -- Still alive?
end)
end)
+
+describe('rubyeval()', function()
+ it('evaluates ruby objects', function()
+ eq({1, 2, {['key'] = 'val'}}, funcs.rubyeval('[1, 2, {key: "val"}]'))
+ end)
+
+ it('returns nil for empty strings', function()
+ eq(helpers.NIL, funcs.rubyeval(''))
+ end)
+
+ it('errors out when given non-string', function()
+ eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(10)'))
+ eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(v:_null_dict)'))
+ eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(v:_null_list)'))
+ eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(0.0)'))
+ eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(function("tr"))'))
+ eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(v:true)'))
+ eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(v:false)'))
+ eq('Vim(call):E474: Invalid argument', exc_exec('call rubyeval(v:null)'))
+ end)
+end)