diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2016-07-10 14:16:12 -0400 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2016-07-10 14:16:12 -0400 |
commit | c7d84c5550a1ffa27c1b1c199fabbdb9247e5117 (patch) | |
tree | 2f99bfeb2482c63d01b9380982129dd0aca7468c /test/functional/provider/ruby_spec.lua | |
parent | 5573e1a350dd2df65e21ed48c14cf89f5e9c0e7a (diff) | |
parent | d3981fee217c2ac56b7659179df06ddced2377ca (diff) | |
download | rneovim-c7d84c5550a1ffa27c1b1c199fabbdb9247e5117.tar.gz rneovim-c7d84c5550a1ffa27c1b1c199fabbdb9247e5117.tar.bz2 rneovim-c7d84c5550a1ffa27c1b1c199fabbdb9247e5117.zip |
Merge #4980 'Support legacy `:ruby` commands'.
Diffstat (limited to 'test/functional/provider/ruby_spec.lua')
-rw-r--r-- | test/functional/provider/ruby_spec.lua | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/test/functional/provider/ruby_spec.lua b/test/functional/provider/ruby_spec.lua new file mode 100644 index 0000000000..7b0e17688d --- /dev/null +++ b/test/functional/provider/ruby_spec.lua @@ -0,0 +1,96 @@ +local helpers = require('test.functional.helpers')(after_each) + +local eq = helpers.eq +local feed = helpers.feed +local clear = helpers.clear +local funcs = helpers.funcs +local meths = helpers.meths +local insert = helpers.insert +local expect = helpers.expect +local command = helpers.command +local write_file = helpers.write_file +local curbufmeths = helpers.curbufmeths + +do + clear() + command('let g:prog = provider#ruby#Detect()') + local prog = meths.get_var('prog') + + if prog == '' then + pending( + "Cannot find the neovim RubyGem. Try :CheckHealth", + function() end) + return + end +end + +before_each(function() + clear() +end) + +describe('ruby feature test', function() + it('works', function() + eq(1, funcs.has('ruby')) + end) +end) + +describe(':ruby command', function() + it('evaluates ruby', function() + command('ruby VIM.command("let g:set_by_ruby = [100, 0]")') + eq({100, 0}, meths.get_var('set_by_ruby')) + end) + + it('supports nesting', function() + command([[ruby VIM.command('ruby VIM.command("let set_by_nested_ruby = 555")')]]) + eq(555, meths.get_var('set_by_nested_ruby')) + end) +end) + +describe(':rubyfile command', function() + it('evaluates a ruby file', function() + local fname = 'rubyfile.rb' + write_file(fname, 'VIM.command("let set_by_rubyfile = 123")') + command('rubyfile rubyfile.rb') + eq(123, meths.get_var('set_by_rubyfile')) + os.remove(fname) + end) +end) + +describe(':rubydo command', function() + it('exposes the $_ variable for modifying lines', function() + insert('abc\ndef\nghi\njkl') + expect([[ + abc + def + ghi + jkl]]) + + feed('ggjvj:rubydo $_.upcase!<CR>') + expect([[ + abc + DEF + GHI + jkl]]) + end) + + it('operates on all lines when not given a range', function() + insert('abc\ndef\nghi\njkl') + expect([[ + abc + def + ghi + jkl]]) + + feed(':rubydo $_.upcase!<CR>') + expect([[ + ABC + DEF + GHI + JKL]]) + end) + + it('does not modify the buffer if no changes are made', function() + command('normal :rubydo 42') + eq(false, curbufmeths.get_option('modified')) + end) +end) |