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)