nix-community.nixvim/tests/test-sources/modules/output.nix
2024-08-04 00:13:12 +01:00

88 lines
2.5 KiB
Nix

{
extraLuaPackages = {
extraLuaPackages = ps: [ ps.jsregexp ];
# Make sure jsregexp is in LUA_PATH
extraConfigLua = ''require("jsregexp")'';
};
# Test that all extraConfigs are present in output
all-configs.module =
{
config,
pkgs,
lib,
...
}:
let
configs = {
extraConfigLuaPre = "string.format('extraConfigLuaPre1')";
extraConfigLua = "string.format('extraConfigLua2')";
extraConfigLuaPost = "string.format('extraConfigLuaPost3')";
extraConfigVim = "let g:var = 'extraConfigVim4'";
};
mkConfigAssertions = name: value: [
{
assertion = lib.hasInfix "extraConfigLuaPre1" value;
message = "Configuration file ${name} should contain extraConfigLuaPre.";
}
{
assertion = lib.hasInfix "extraConfigLua2" value;
message = "Configuration file ${name} should contain extraConfigLua.";
}
{
assertion = lib.hasInfix "extraConfigLuaPost3" value;
message = "Configuration file ${name} should contain extraConfigLuaPost.";
}
{
assertion = lib.hasInfix "extraConfigVim4" value;
message = "Configuration file ${name} should contain extraConfigVim.";
}
];
in
configs
// {
files = {
"test.lua" = configs;
"test.vim" = configs;
};
# Plugin configs
# TODO: Test this makes it to the nvim configuration
# NOTE: config.content currently does not contain extraPlugins config
extraPlugins = [
{
plugin = pkgs.emptyDirectory;
config = "let g:var = 'neovimRcContent5'";
}
];
assertions =
# Main init.lua
mkConfigAssertions "init.lua" config.content
# Extra file modules
++ mkConfigAssertions "test.lua" config.files."test.lua".content
++ mkConfigAssertions "test.vim" config.files."test.vim".content;
};
files-default-empty.module =
{ config, helpers, ... }:
{
files = {
# lua type
"test.lua" = { };
# vim type
"test.vim" = { };
};
assertions = [
{
assertion = !helpers.hasContent config.files."test.lua".content;
message = "Default content of test.lua file is expected to be empty.";
}
{
assertion = !helpers.hasContent config.files."test.vim".content;
message = "Default content of test.vim file is expected to be empty.";
}
];
};
}