diff options
author | ZyX <kp-pav@yandex.ru> | 2016-01-06 22:33:56 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2016-01-07 00:54:57 +0300 |
commit | efaf76e6238c7b109676575b41f637374f896cb8 (patch) | |
tree | 8dd89a6de2a39d3c82c15f837cccced11e0f3ae1 /test/functional/plugin/msgpack_spec.lua | |
parent | d26b01d4bd42c7cf6fc455406b3cfd696465f652 (diff) | |
download | rneovim-efaf76e6238c7b109676575b41f637374f896cb8.tar.gz rneovim-efaf76e6238c7b109676575b41f637374f896cb8.tar.bz2 rneovim-efaf76e6238c7b109676575b41f637374f896cb8.zip |
functests: Update tests
Diffstat (limited to 'test/functional/plugin/msgpack_spec.lua')
-rw-r--r-- | test/functional/plugin/msgpack_spec.lua | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/functional/plugin/msgpack_spec.lua b/test/functional/plugin/msgpack_spec.lua index 18ff0f5156..9cbfacd936 100644 --- a/test/functional/plugin/msgpack_spec.lua +++ b/test/functional/plugin/msgpack_spec.lua @@ -697,3 +697,27 @@ describe('In autoload/msgpack.vim', function() end) end) end) + +describe('msgpackdump() function', function() + before_each(reset) + + it('uses msgpack#string for dumping fref error messages for special map keys', function() + nvim_command('let todump = {"_TYPE": v:msgpack_types.map, "_VAL": [[{"_TYPE": v:msgpack_types.string, "_VAL": ["abc"]}, [function("tr")]]]}') + eq('Vim(call):E951: Error while dumping msgpackdump() argument, index 0, key ="abc" at index 0 from special map, index 0: attempt to dump function reference', + exc_exec('call msgpackdump([todump])')) + end) + + it('falls back to using string() in case of error (fref)', function() + nvim_command('let todump = {"_TYPE": v:msgpack_types.map, "_VAL": [[[function("tr")], []]]}') + nvim_command('call add(todump._VAL[0][0], todump._VAL[0][0])') + eq('Vim(call):E951: Error while dumping msgpackdump() argument, index 0, key [function(\'tr\'), {E724@0}] at index 0 from special map, index 0: attempt to dump function reference', + exc_exec('call msgpackdump([todump])')) + end) + + it('falls back to using string() in case of error (recurse)', function() + nvim_command('let todump = {"_TYPE": v:msgpack_types.map, "_VAL": [[[], []]]}') + nvim_command('call add(todump._VAL[0][0], todump._VAL[0][0])') + eq('Vim(call):E952: Unable to dump msgpackdump() argument, index 0: container references itself in key [{E724@0}] at index 0 from special map, index 0', + exc_exec('call msgpackdump([todump])')) + end) +end) |