Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .busted
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ return {
verbose = true,
},
offline = {
exclude_tags = {"online"},
["exclude-tags"] = {"online"},
["keep-going"] = false,
verbose = true,
},
tests = {
Expand Down
1 change: 1 addition & 0 deletions lua/rocks/adapter.lua
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ end
--- so that colorschemes are available before rocks.nvim
--- has initialised.
local function init_site_symlinks_async()
nio.scheduler() -- In tests, this can lead to a vimscript function being invoked by nvim-nio
local state = require("rocks.state")
vim
.iter(state.installed_rocks())
Expand Down
74 changes: 48 additions & 26 deletions nix/plugin-overlay.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,54 @@
}: final: prev: let
lib = final.lib;
luaPackage-override = luaself: luaprev: {
rocks-nvim = luaself.callPackage ({
luaOlder,
buildLuarocksPackage,
lua,
luarocks,
toml-edit,
fidget-nvim,
nvim-nio,
fzy,
rtp-nvim,
}:
buildLuarocksPackage {
pname = name;
version = "scm-1";
knownRockspec = "${self}/rocks.nvim-scm-1.rockspec";
src = self;
disabled = luaOlder "5.1";
propagatedBuildInputs = [
luarocks
toml-edit
fidget-nvim
nvim-nio
fzy
rtp-nvim
];
}) {};
rocks-nvim = (luaself.callPackage
({
luaOlder,
buildLuarocksPackage,
lua,
luarocks,
toml-edit,
fidget-nvim,
nvim-nio,
fzy,
rtp-nvim,
}:
buildLuarocksPackage {
pname = name;
version = "scm-1";
knownRockspec = "${self}/rocks.nvim-scm-1.rockspec";
src = self;
disabled = luaOlder "5.1";
propagatedBuildInputs = [
luarocks
toml-edit
fidget-nvim
nvim-nio
fzy
rtp-nvim
];
}) {}).overrideAttrs (oa: {
doCheck = true;

nvimSkipModules = [
"bootstrap" # tries to install luarocks from network
];

nativeCheckInputs = with luaself; [
nlua
busted
];

preCheck = ''
export HOME=$NIX_BUILD_TOP/home
'';

checkPhase = ''
runHook preCheck
busted --run=offline
runHook postCheck
'';
});
};
lua5_1 = prev.lua5_1.override {
packageOverrides = luaPackage-override;
Expand Down
4 changes: 2 additions & 2 deletions spec/adapter_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ vim.g.rocks_nvim = {
rocks_path = tempdir,
}

vim.env.PLENARY_TEST_TIMEOUT = 1000 * 60
local nio = require("nio")
vim.env.PLENARY_TEST_TIMEOUT = 60000
local adapter = require("rocks.adapter")
local config = require("rocks.config.internal")
local operations = require("rocks.operations")
Expand All @@ -24,7 +24,7 @@ describe("rocks.adapter", function()
adapter.init()
end)

nio.tests.it("Can run checkhealth for luarocks plugins", function()
nio.tests.it("Can run checkhealth for luarocks plugins #online", function()
local mock_health = mock({
check = function(_) end,
})
Expand Down
2 changes: 0 additions & 2 deletions spec/config_spec.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
vim.env.PLENARY_TEST_TIMEOUT = 60000

local tempdir = vim.fn.tempname()
vim.g.rocks_nvim = {
rocks_path = tempdir,
Expand Down
1 change: 0 additions & 1 deletion spec/loader_spec.lua
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
vim.env.PLENARY_TEST_TIMEOUT = 60000
vim.g.rocks_nvim = {
luarocks_binary = "luarocks",
}
Expand Down
2 changes: 0 additions & 2 deletions spec/luarocks_config_spec.lua
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
local nio = require("nio")

vim.env.PLENARY_TEST_TIMEOUT = 60000

describe("luarocks config", function()
nio.tests.it("extra luarocks_config", function()
local tempdir = vim.fn.tempname()
Expand Down
4 changes: 2 additions & 2 deletions spec/operations/bulk_install_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ vim.g.rocks_nvim = {
local nio = require("nio")
local fs = require("rocks.fs")
local config = require("rocks.config.internal")
vim.env.PLENARY_TEST_TIMEOUT = 60000 * 5
describe("bulk install", function()
vim.env.PLENARY_TEST_TIMEOUT = 1000 * 60
describe("bulk install #online", function()
setup(function()
vim.system({ "rm", "-r", tempdir }):wait()
end)
Expand Down
6 changes: 3 additions & 3 deletions spec/operations/helpers_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ vim.g.rocks_nvim = {
config_path = vim.fs.joinpath(tempdir, "rocks.toml"),
}
local nio = require("nio")
vim.env.PLENARY_TEST_TIMEOUT = 60000
vim.env.PLENARY_TEST_TIMEOUT = 1000 * 60
describe("operations.helpers", function()
setup(function()
vim.system({ "rm", "-r", tempdir }):wait()
Expand All @@ -16,7 +16,7 @@ describe("operations.helpers", function()
local config = require("rocks.config.internal")
local state = require("rocks.state")
vim.system({ "mkdir", "-p", config.rocks_path }):wait()
nio.tests.it("install/remove", function()
nio.tests.it("install/remove #online", function()
helpers.install({ name = "plenary.nvim" }).wait()
---@diagnostic disable-next-line: missing-fields
local result = vim.fs.find("plenary", { path = config.rocks_path, type = "directory" })
Expand Down Expand Up @@ -54,7 +54,7 @@ describe("operations.helpers", function()
assert.is_nil(result.baz)
assert.same("foo 7.0.0 -> 8.0.0", tostring(result.foo))
end)
nio.tests.it("Install rock stub", function()
nio.tests.it("Install rock stub #online", function()
local installed_rocks = state.installed_rocks()
assert.is_nil(installed_rocks["stub.nvim"])
helpers.manage_rock_stub({
Expand Down
29 changes: 15 additions & 14 deletions spec/operations/install_update_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ vim.g.rocks_nvim = {
config_path = vim.fs.joinpath(tempdir, "rocks.toml"),
}
local nio = require("nio")
vim.env.PLENARY_TEST_TIMEOUT = 60000 * 5
vim.env.PLENARY_TEST_TIMEOUT = 1000 * 60
describe("install/update #online", function()
local operations = require("rocks.operations")
local state = require("rocks.state")
Expand All @@ -16,6 +16,7 @@ describe("install/update #online", function()
end)

nio.tests.it("install and update rocks", function()
local pkg_name = "nlua"
local autocmd_future = nio.control.future()
vim.api.nvim_create_autocmd("User", {
pattern = "RocksInstallPost",
Expand All @@ -26,26 +27,26 @@ describe("install/update #online", function()
end,
})
local future = nio.control.future()
operations.add({ "Neorg", "7.0.0" }, {
operations.add({ "nlua", "0.1.0" }, {
callback = function() -- ensure lower case
future.set(true)
end,
})
future.wait()
local neorg_expected = {
name = "neorg",
version = "7.0.0",
local pkg_expected = {
name = "nlua",
version = "0.1.0",
}
local installed_rocks = state.installed_rocks()
assert.same(neorg_expected, installed_rocks.neorg)
assert.same(pkg_expected, installed_rocks[pkg_name])
local data = autocmd_future.wait()
assert.same(neorg_expected, data.installed)
assert.same(neorg_expected, data.spec)
assert.same(pkg_expected, data.installed)
assert.same(pkg_expected, data.spec)
local user_rocks = require("rocks.config.internal").get_user_rocks()
assert.same({
name = "neorg",
version = "7.0.0",
}, user_rocks.neorg)
name = "nlua",
version = "0.1.0",
}, user_rocks[pkg_name])
future = nio.control.future()
operations.update(function()
future.set(true)
Expand All @@ -54,9 +55,9 @@ describe("install/update #online", function()
})
future.wait()
installed_rocks = state.installed_rocks()
local updated_version = vim.version.parse(installed_rocks.neorg.version)
assert.True(updated_version > vim.version.parse("7.0.0"))
local updated_version = vim.version.parse(installed_rocks[pkg_name].version)
assert.True(updated_version > vim.version.parse("0.1.0"))
user_rocks = require("rocks.config.internal").get_user_rocks()
assert.True(vim.version.parse(user_rocks.neorg.version) > vim.version.parse("7.0.0"))
assert.True(vim.version.parse(user_rocks[pkg_name].version) > vim.version.parse("0.1.0"))
end)
end)
4 changes: 2 additions & 2 deletions spec/operations/pin_commands_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ local function parse_config()
return require("toml_edit").parse(config_file_content)
end

vim.env.PLENARY_TEST_TIMEOUT = 60000 * 5
describe("Rocks pin/unpin #online", function()
vim.env.PLENARY_TEST_TIMEOUT = 6000
describe("Rocks pin/unpin", function()
setup(function()
vim.system({ "rm", "-r", tempdir }):wait()
vim.system({ "mkdir", "-p", tempdir }):wait()
Expand Down
2 changes: 1 addition & 1 deletion spec/operations/pin_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ vim.g.rocks_nvim = {
rocks_path = tempdir,
config_path = vim.fs.joinpath(tempdir, "rocks.toml"),
}
vim.env.PLENARY_TEST_TIMEOUT = 60000 * 5
vim.env.PLENARY_TEST_TIMEOUT = 1000 * 60
describe("install/pin/update #online", function()
local nio = require("nio")
local operations = require("rocks.operations")
Expand Down
6 changes: 3 additions & 3 deletions spec/operations/sync_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ local operations = require("rocks.operations")
local helpers = require("rocks.operations.helpers")
local state = require("rocks.state")
local config = require("rocks.config.internal")
vim.env.PLENARY_TEST_TIMEOUT = 60000 * 5
describe("#online operations", function()
vim.env.PLENARY_TEST_TIMEOUT = 1000 * 60
describe("operations", function()
vim.system({ "mkdir", "-p", config.rocks_path }):wait()
nio.tests.it("sync", function()
nio.tests.it("sync #online", function()
-- Test sync without any rocks
local config_content = [[
[rocks]
Expand Down
2 changes: 0 additions & 2 deletions spec/plugin_spec.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
vim.env.PLENARY_TEST_TIMEOUT = 60000

local tempdir = vim.fn.tempname()
vim.g.rocks_nvim = {
rocks_path = tempdir,
Expand Down
Loading