mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-22 08:53:28 +02:00
In our basic template we used to provide a check based on `mkTestDerivationFromNvim`. The issue with this check (that is handled correctly internally) is that some plugins _can't_ be used in the test environment, for example image.nvim like in #1085. This commit introduces a new function to generate such checks, `mkTestDerivationFromNixvimModule`, that wraps a nixvim configuration instead of a built nvim instance. Then a configuration can rely on the newly added `helpers.enableExceptInTests` attribute to disable parts of the configuration depending if it is evaluated in tests or in a real final configuration. Resolves #1085
42 lines
1 KiB
Nix
42 lines
1 KiB
Nix
{
|
|
makeNixvim,
|
|
makeNixvimWithModule,
|
|
lib,
|
|
helpers,
|
|
pkgs,
|
|
}: let
|
|
fetchTests = import ./fetch-tests.nix;
|
|
test-derivation = import ./test-derivation.nix {inherit pkgs makeNixvim makeNixvimWithModule;};
|
|
inherit (test-derivation) mkTestDerivation;
|
|
|
|
# List of files containing configurations
|
|
testFiles = fetchTests {
|
|
inherit lib pkgs helpers;
|
|
root = ./test-sources;
|
|
};
|
|
|
|
exampleFiles = {
|
|
example = let
|
|
config = import ../example.nix {inherit pkgs;};
|
|
in
|
|
builtins.removeAttrs config.programs.nixvim [
|
|
# This is not available to standalone modules, only HM & NixOS Modules
|
|
"enable"
|
|
# This is purely an example, it does not reflect a real usage
|
|
"extraConfigLua"
|
|
"extraConfigVim"
|
|
];
|
|
};
|
|
|
|
# We attempt to build & execute all configurations
|
|
derivationList =
|
|
pkgs.lib.mapAttrsToList
|
|
(
|
|
name: path: {
|
|
inherit name;
|
|
path = mkTestDerivation name path;
|
|
}
|
|
)
|
|
(testFiles // exampleFiles);
|
|
in
|
|
pkgs.linkFarm "nixvim-tests" derivationList
|