local spec = require('cmp.utils.spec') local keymap = require('cmp.utils.keymap') local feedkeys = require('cmp.utils.feedkeys') local api = require('cmp.utils.api') describe('api', function() before_each(spec.before) describe('get_cursor', function() it('insert-mode', function() local cursor feedkeys.call(keymap.t('i\t1234567890'), 'nx', function() cursor = api.get_cursor() end) assert.are.equal(cursor[2], 11) end) it('cmdline-mode', function() local cursor keymap.set_map(0, 'c', '(cmp-spec-spy)', function() cursor = api.get_cursor() end, { expr = true, noremap = true }) feedkeys.call(keymap.t(':\t1234567890'), 'n') feedkeys.call(keymap.t('(cmp-spec-spy)'), 'x') assert.are.equal(cursor[2], 11) end) end) describe('get_screen_cursor', function() it('insert-mode', function() local screen_cursor feedkeys.call(keymap.t('iあいうえお'), 'nx', function() screen_cursor = api.get_screen_cursor() end) assert.are.equal(10, screen_cursor[2]) end) it('cmdline-mode', function() local screen_cursor keymap.set_map(0, 'c', '(cmp-spec-spy)', function() screen_cursor = api.get_screen_cursor() end, { expr = true, noremap = true }) feedkeys.call(keymap.t(':あいうえお'), 'n') feedkeys.call(keymap.t('(cmp-spec-spy)'), 'x') assert.are.equal(10, screen_cursor[2]) end) end) describe('get_cursor_before_line', function() it('insert-mode', function() local cursor_before_line feedkeys.call(keymap.t('i\t1234567890'), 'nx', function() cursor_before_line = api.get_cursor_before_line() end) assert.are.same(cursor_before_line, '\t12345678') end) it('cmdline-mode', function() local cursor_before_line keymap.set_map(0, 'c', '(cmp-spec-spy)', function() cursor_before_line = api.get_cursor_before_line() end, { expr = true, noremap = true }) feedkeys.call(keymap.t(':\t1234567890'), 'n') feedkeys.call(keymap.t('(cmp-spec-spy)'), 'x') assert.are.same(cursor_before_line, '\t12345678') end) end) end)