neovim

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

winfixbuf_spec.lua (1416B)


      1 local n = require('test.functional.testnvim')()
      2 local t = require('test.testutil')
      3 
      4 local clear = n.clear
      5 local exec_lua = n.exec_lua
      6 
      7 describe("'winfixbuf'", function()
      8  before_each(function()
      9    clear()
     10  end)
     11 
     12  ---@return integer
     13  local function setup_winfixbuf()
     14    return exec_lua([[
     15      local buffer = vim.api.nvim_create_buf(true, true)
     16      vim.api.nvim_create_buf(true, true)  -- Make another buffer
     17      vim.wo.winfixbuf = true
     18      return buffer
     19    ]])
     20  end
     21 
     22  it('nvim_win_set_buf on non-current buffer', function()
     23    local other_buf = setup_winfixbuf()
     24    t.eq(
     25      "Vim:E1513: Cannot switch buffer. 'winfixbuf' is enabled",
     26      t.pcall_err(n.api.nvim_win_set_buf, 0, other_buf)
     27    )
     28  end)
     29 
     30  it('nvim_set_current_buf on non-current buffer', function()
     31    local other_buf = setup_winfixbuf()
     32    t.eq(
     33      "Vim:E1513: Cannot switch buffer. 'winfixbuf' is enabled",
     34      t.pcall_err(n.api.nvim_set_current_buf, other_buf)
     35    )
     36  end)
     37 
     38  it('nvim_win_set_buf on current buffer', function()
     39    setup_winfixbuf()
     40    local curbuf = n.api.nvim_get_current_buf()
     41    n.api.nvim_win_set_buf(0, curbuf)
     42    t.eq(curbuf, n.api.nvim_get_current_buf())
     43  end)
     44 
     45  it('nvim_set_current_buf on current buffer', function()
     46    setup_winfixbuf()
     47    local curbuf = n.api.nvim_get_current_buf()
     48    n.api.nvim_set_current_buf(curbuf)
     49    t.eq(curbuf, n.api.nvim_get_current_buf())
     50  end)
     51 end)