winfixbuf_spec.lua 1.4 KB

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