summaryrefslogtreecommitdiff
path: root/lua/tests
diff options
context:
space:
mode:
Diffstat (limited to 'lua/tests')
-rw-r--r--lua/tests/automated/entry_display_spec.lua32
1 files changed, 32 insertions, 0 deletions
diff --git a/lua/tests/automated/entry_display_spec.lua b/lua/tests/automated/entry_display_spec.lua
new file mode 100644
index 0000000..fff78cd
--- /dev/null
+++ b/lua/tests/automated/entry_display_spec.lua
@@ -0,0 +1,32 @@
+local entry_display = require('telescope.pickers.entry_display')
+
+describe('truncate', function()
+ for _, ambiwidth in ipairs{'single', 'double'} do
+ for _, case in ipairs{
+ {args = {'abcde', 6}, expected = {single = 'abcde', double = 'abcde'}},
+ {args = {'abcde', 5}, expected = {single = 'abcde', double = 'abcde'}},
+ {args = {'abcde', 4}, expected = {single = 'abc…', double = 'ab…'}},
+ {args = {'アイウエオ', 11}, expected = {single = 'アイウエオ', double = 'アイウエオ'}},
+ {args = {'アイウエオ', 10}, expected = {single = 'アイウエオ', double = 'アイウエオ'}},
+ {args = {'アイウエオ', 9}, expected = {single = 'アイウエ…', double = 'アイウ…'}},
+ {args = {'アイウエオ', 8}, expected = {single = 'アイウ…', double = 'アイウ…'}},
+ {args = {'├─┤', 7}, expected = {single = '├─┤', double = '├─┤'}},
+ {args = {'├─┤', 6}, expected = {single = '├─┤', double = '├─┤'}},
+ {args = {'├─┤', 5}, expected = {single = '├─┤', double = '├…'}},
+ {args = {'├─┤', 4}, expected = {single = '├─┤', double = '├…'}},
+ {args = {'├─┤', 3}, expected = {single = '├─┤', double = '…'}},
+ {args = {'├─┤', 2}, expected = {single = '├…', double = '…'}},
+ } do
+ local msg = ('can truncate: ambiwidth = %s, [%s, %d] -> %s'):format(ambiwidth, case.args[1], case.args[2], case.expected[ambiwidth])
+ it(msg, function()
+ local original = vim.o.ambiwidth
+ vim.o.ambiwidth = ambiwidth
+ assert.are.same(
+ case.expected[ambiwidth],
+ entry_display.truncate(case.args[1], case.args[2])
+ )
+ vim.o.ambiwidth = original
+ end)
+ end
+ end
+end)