aboutsummaryrefslogtreecommitdiff
path: root/test/functional/plugin/msgpack_spec.lua
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2016-01-06 22:33:56 +0300
committerZyX <kp-pav@yandex.ru>2016-01-07 00:54:57 +0300
commitefaf76e6238c7b109676575b41f637374f896cb8 (patch)
tree8dd89a6de2a39d3c82c15f837cccced11e0f3ae1 /test/functional/plugin/msgpack_spec.lua
parentd26b01d4bd42c7cf6fc455406b3cfd696465f652 (diff)
downloadrneovim-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.lua24
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)