-
-
Notifications
You must be signed in to change notification settings - Fork 307
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tests: Introduce a way to disable options when running in tests (#1095)
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
- Loading branch information
Showing
15 changed files
with
92 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,13 @@ | ||
# Args probably only needs pkgs and lib | ||
{ | ||
makeNixvim, | ||
makeNixvimWithModule, | ||
pkgs, | ||
... | ||
} @ args: { | ||
# Add all exported modules here | ||
check = import ../tests/test-derivation.nix { | ||
inherit makeNixvim pkgs; | ||
inherit makeNixvim makeNixvimWithModule pkgs; | ||
}; | ||
helpers = import ./helpers.nix args; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
{ | ||
pkgs, | ||
mkTestDerivationFromNixvimModule, | ||
makeNixvimWithModule, | ||
}: let | ||
module = {helpers, ...}: { | ||
plugins.image.enable = helpers.enableExceptInTests; | ||
}; | ||
|
||
inTest = mkTestDerivationFromNixvimModule { | ||
name = "enable-except-in-tests-test"; | ||
inherit pkgs module; | ||
}; | ||
|
||
notInTest = let | ||
nvim = makeNixvimWithModule { | ||
inherit pkgs module; | ||
}; | ||
in | ||
pkgs.runCommand "enable-except-in-tests-not-in-test" { | ||
printConfig = "${nvim}/bin/nixvim-print-init"; | ||
} '' | ||
if ! "$printConfig" | grep 'require("image").setup'; then | ||
echo "image.nvim is not present in the configuration" | ||
echo -e "configuration:\n$($printConfig)" | ||
exit 1 | ||
fi | ||
touch $out | ||
''; | ||
in | ||
pkgs.linkFarm "enable-except-in-tests" [ | ||
{ | ||
name = "in-test"; | ||
path = inTest; | ||
} | ||
{ | ||
name = "not-in-test"; | ||
path = notInTest; | ||
} | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters