nix-community.nixvim/lib/tests.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

67 lines
1.6 KiB
Nix
Raw Normal View History

{
self,
system,
lib,
}:
2023-03-22 07:42:02 +01:00
let
defaultSystem = system;
2023-03-22 07:42:02 +01:00
# Create a nix derivation from a nixvim executable.
# The build phase simply consists in running the provided nvim binary.
mkTestDerivationFromNvim =
{
name,
nvim,
...
2024-12-23 10:45:55 +01:00
}:
let
# FIXME: this doesn't support helpers.enableExceptInTests, a context option would be better
result = nvim.extend {
2024-12-23 10:45:55 +01:00
config.test = {
inherit name;
};
};
in
result.config.build.test;
2023-03-22 07:42:02 +01:00
# Create a nix derivation from a nixvim configuration.
# The build phase simply consists in running neovim with the given configuration.
mkTestDerivationFromNixvimModule =
{
name ? null,
pkgs ? null,
system ? defaultSystem,
module,
extraSpecialArgs ? { },
2024-12-23 10:45:55 +01:00
}:
let
2024-12-15 05:23:06 +00:00
# NOTE: we are importing this just for evalNixvim
helpers = self.lib.nixvim.override {
# TODO: deprecate helpers.enableExceptInTests,
# add a context option e.g. `config.isTest`?
_nixvimTests = true;
};
systemMod =
if pkgs == null then
{ nixpkgs.hostPlatform = lib.mkDefault { inherit system; }; }
else
{ nixpkgs.pkgs = lib.mkDefault pkgs; };
result = helpers.modules.evalNixvim {
modules = [
module
(lib.optionalAttrs (name != null) { test.name = name; })
{ wrapRc = true; }
systemMod
];
inherit extraSpecialArgs;
};
in
result.config.build.test;
in
# NOTE: this is exported publicly in the flake outputs as `lib.<system>.check`
{
inherit mkTestDerivationFromNvim mkTestDerivationFromNixvimModule;
}