aboutsummaryrefslogtreecommitdiff
path: root/.config/vis/plugins/vis-lspc/util_test.lua
diff options
context:
space:
mode:
authordacctal <dacctal@symlinx.net>2026-04-27 05:30:46 +0000
committerdacctal <dacctal@symlinx.net>2026-04-27 05:30:46 +0000
commitd33d907f53c50d323eca75c4bfc02ab5b989b30a (patch)
tree6888a2074338a723f0fde99b03b09fbab91a265f /.config/vis/plugins/vis-lspc/util_test.lua
parent89505535c652cd6f31a15df73293c6e90eaa852f (diff)
added bare pluginsHEADmaster
Diffstat (limited to '.config/vis/plugins/vis-lspc/util_test.lua')
-rwxr-xr-x.config/vis/plugins/vis-lspc/util_test.lua76
1 files changed, 76 insertions, 0 deletions
diff --git a/.config/vis/plugins/vis-lspc/util_test.lua b/.config/vis/plugins/vis-lspc/util_test.lua
new file mode 100755
index 0000000..63393b1
--- /dev/null
+++ b/.config/vis/plugins/vis-lspc/util_test.lua
@@ -0,0 +1,76 @@
+#!/usr/bin/env lua5.4
+
+-- mock vis global
+vis = {} -- luacheck: ignore 111
+local util = require('util')
+
+local lunatest = require('lunatest')
+
+function test_dirname() -- luacheck: ignore 111
+ lunatest.assert_equal('/usr', util.dirname('/usr/lib'))
+ lunatest.assert_equal('/', util.dirname('/usr/'))
+ lunatest.assert_equal('.', util.dirname('usr'))
+ lunatest.assert_equal('.', util.dirname('.'))
+ lunatest.assert_equal('..', util.dirname('..'))
+ lunatest.assert_equal('/', util.dirname('/'))
+end
+
+function test_visual_chars_in_line() -- luacheck: ignore 111
+ local win = {options = {tabwidth = 4}} -- win mock
+ local s = '\tfo' -- visual chars == 6
+ lunatest.assert_equal(util.visual_chars_in_line(win, s, #s), 6)
+
+ s = 'f\tfo' -- visual chars == 6
+ lunatest.assert_equal(util.visual_chars_in_line(win, s, #s), 6)
+
+ s = 'fo\tfo' -- visual chars == 6
+ lunatest.assert_equal(util.visual_chars_in_line(win, s, #s), 6)
+
+ s = 'foo\tfo' -- visual chars == 6
+ lunatest.assert_equal(util.visual_chars_in_line(win, s, #s), 6)
+end
+
+function test_table_deep_copy() -- luacheck: ignore 111
+ local t = {1, 2, 3, foo = {4, 5, bar = 'bar'}}
+ local cpy = util.table.deep_copy(t)
+
+ lunatest.assert_table(cpy)
+ lunatest.assert_len(3, cpy)
+ lunatest.assert_table(cpy.foo)
+ lunatest.assert_len(2, cpy.foo)
+ for i, v in ipairs(t) do
+ lunatest.assert_equal(v, cpy[i])
+ end
+
+ t[2] = 12
+ lunatest.assert_not_equal(t[2], cpy[2])
+ t.foo[2] = 13
+ lunatest.assert_not_equal(t.foo[2], cpy.foo[2])
+end
+
+function test_table_merge() -- luacheck: ignore 111
+ local t = {1, 2, foo = {bar = {nose = 'nose'}}}
+ local t2 = {3, foo = {4, 5, bar = {bar = 'bar'}}}
+ lunatest.assert_table(t)
+ lunatest.assert_table(t2)
+
+ util.table.merge(t, t2)
+
+ lunatest.assert_table(t)
+ lunatest.assert_len(3, t)
+
+ lunatest.assert_equal(1, t[1])
+ lunatest.assert_equal(2, t[2])
+ lunatest.assert_equal(3, t[3])
+
+ lunatest.assert_table(t.foo)
+ lunatest.assert_len(2, t.foo)
+
+ lunatest.assert_equal(t[3], t2[1])
+ lunatest.assert_equal(t[2], 2)
+
+ lunatest.assert_equal(t.foo.bar.bar, 'bar')
+ lunatest.assert_equal(t.foo.bar.nose, 'nose')
+end
+
+lunatest.run()