modules/test: init, replacing dontRun arg

Introduces the `test.runNvim` module option.

Deprecates the historic `dontRun` argument passed to the test-derivation
helpers.

Soft-deprecates the `tests.dontRun` attr used in tests currently.
This commit is contained in:
Matt Sturgeon 2024-08-20 00:30:16 +01:00
parent 312db6b6e2
commit f47374fd26
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299
6 changed files with 69 additions and 25 deletions

View file

@ -7,7 +7,7 @@
}:
let
fetchTests = import ./fetch-tests.nix;
test-derivation = import ./test-derivation.nix { inherit pkgs makeNixvimWithModule; };
test-derivation = import ./test-derivation.nix { inherit pkgs lib makeNixvimWithModule; };
inherit (test-derivation) mkTestDerivationFromNixvimModule;
# List of files containing configurations
@ -43,16 +43,29 @@ lib.pipe (testFiles ++ [ exampleFiles ]) [
let
# The test case can either be the actual definition,
# or a child attr named `module`.
prepareModule = case: case.module or (lib.removeAttrs case [ "tests" ]);
dontRunModule = case: case.tests.dontRun or false;
prepareModule =
case: if lib.isFunction case then case else case.module or (lib.removeAttrs case [ "tests" ]);
# Convert legacy `dontRun` definitions into `test.runNvim` option defs
dontRunModule =
case:
let
dontRun = case.tests.dontRun or false;
in
lib.optionalAttrs dontRun { test.runNvim = false; };
mkTest =
{ name, case }:
{
inherit name;
path = mkTestDerivationFromNixvimModule {
inherit name;
module = prepareModule case;
dontRun = dontRunModule case;
module = {
imports = [
(dontRunModule case)
(prepareModule case)
];
};
pkgs = pkgsUnfree;
};
};