Luigit
repositories / dotfiles

dotfiles

bugabingas dorkfiles

owned by admin

neovim/tests/std/puk_spec.lua

Raw
describe('std.puk', function()
  local original_v
  local original_packadd

  before_each(function()
    original_v = vim.v
    original_packadd = vim.cmd.packadd
    package.loaded['std.puk'] = nil
    package.loaded['test-puk-plugin'] = nil
    package.preload['test-puk-plugin'] = function() return {} end
  end)

  after_each(function()
    vim.v = original_v
    vim.cmd.packadd = original_packadd
    package.loaded['std.puk'] = nil
    package.loaded['test-puk-plugin'] = nil
    package.preload['test-puk-plugin'] = nil
  end)

  local function packadd_options(did_init)
    local options
    vim.v = { vim_did_init = did_init }
    vim.cmd.packadd = function(value) options = value end
    require('std.puk')('test-puk-plugin')
    return options
  end

  it('defers plugin scripts while init is running', function()
    assert.is_true(packadd_options(0).bang)
  end)

  it('loads plugin scripts after init has finished', function()
    assert.is_false(packadd_options(1).bang)
  end)
end)