neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

searchwrapped_spec.lua (1152B)


      1 local t = require('test.testutil')
      2 local n = require('test.functional.testnvim')()
      3 
      4 local clear = n.clear
      5 local command = n.command
      6 local api = n.api
      7 local eq = t.eq
      8 local eval = n.eval
      9 local feed = n.feed
     10 
     11 describe('autocmd SearchWrapped', function()
     12  before_each(function()
     13    clear()
     14    command('set ignorecase')
     15    command('let g:test = 0')
     16    command('autocmd! SearchWrapped * let g:test += 1')
     17    api.nvim_buf_set_lines(0, 0, 1, false, {
     18      'The quick brown fox',
     19      'jumps over the lazy dog',
     20    })
     21  end)
     22 
     23  it('gets triggered when search wraps the end', function()
     24    feed('/the<Return>')
     25    eq(0, eval('g:test'))
     26 
     27    feed('n')
     28    eq(1, eval('g:test'))
     29 
     30    feed('nn')
     31    eq(2, eval('g:test'))
     32  end)
     33 
     34  it('gets triggered when search wraps in reverse order', function()
     35    feed('/the<Return>')
     36    eq(0, eval('g:test'))
     37 
     38    feed('NN')
     39    eq(1, eval('g:test'))
     40 
     41    feed('NN')
     42    eq(2, eval('g:test'))
     43  end)
     44 
     45  it('does not get triggered on failed searches', function()
     46    feed('/blargh<Return>')
     47    eq(0, eval('g:test'))
     48 
     49    feed('NN')
     50    eq(0, eval('g:test'))
     51 
     52    feed('NN')
     53    eq(0, eval('g:test'))
     54  end)
     55 end)