Skip to content

Commit 975af6a

Browse files
committed
tests: simplify fetch-tests slightly
Simplify by reducing the number of transformations done to the test-files' test-case modules attr. Since `pkgs.linkFarm` can accept _either_ a list or an attrset, we don't need to transform the attrset into a list.
1 parent 1c879ec commit 975af6a

File tree

2 files changed

+23
-30
lines changed

2 files changed

+23
-30
lines changed

tests/default.nix

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,11 @@ let
99
test-derivation = import ../lib/tests.nix { inherit pkgs lib; };
1010
inherit (test-derivation) mkTestDerivationFromNixvimModule;
1111

12-
mkTest =
13-
{ name, module }:
14-
{
15-
inherit name;
16-
path = mkTestDerivationFromNixvimModule {
17-
inherit name module;
18-
pkgs = pkgsUnfree;
19-
};
12+
moduleToTest =
13+
name: module:
14+
mkTestDerivationFromNixvimModule {
15+
inherit name module;
16+
pkgs = pkgsUnfree;
2017
};
2118

2219
# List of files containing configurations
@@ -27,29 +24,27 @@ let
2724

2825
exampleFiles = {
2926
name = "examples";
30-
modules =
27+
file = ../example.nix;
28+
cases =
3129
let
3230
config = import ../example.nix { inherit pkgs; };
3331
in
34-
[
35-
{
36-
name = "main";
37-
module = builtins.removeAttrs config.programs.nixvim [
38-
# This is not available to standalone modules, only HM & NixOS Modules
39-
"enable"
40-
# This is purely an example, it does not reflect a real usage
41-
"extraConfigLua"
42-
"extraConfigVim"
43-
];
44-
}
45-
];
32+
{
33+
main = builtins.removeAttrs config.programs.nixvim [
34+
# This is not available to standalone modules, only HM & NixOS Modules
35+
"enable"
36+
# This is purely an example, it does not reflect a real usage
37+
"extraConfigLua"
38+
"extraConfigVim"
39+
];
40+
};
4641
};
4742
in
4843
# We attempt to build & execute all configurations
4944
lib.pipe (testFiles ++ [ exampleFiles ]) [
5045
(builtins.map (file: {
5146
inherit (file) name;
52-
path = pkgs.linkFarm file.name (builtins.map mkTest file.modules);
47+
path = pkgs.linkFarm file.name (builtins.mapAttrs moduleToTest file.cases);
5348
}))
5449
(helpers.groupListBySize 10)
5550
(lib.imap1 (

tests/fetch-tests.nix

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,25 @@
55
helpers,
66
}:
77
let
8-
# Import a test file into the form { name = ""; file = ""; modules = []; }
8+
# Import a test file into the form { name = ""; file = ""; cases = {}; }
99
handleTestFile =
1010
file: namespace:
1111
let
1212
fnOrAttrs = import file;
13+
in
14+
{
15+
inherit file;
16+
name = lib.strings.concatStringsSep "-" namespace;
1317
cases =
1418
if builtins.isFunction fnOrAttrs then
1519
# Call the function
1620
fnOrAttrs { inherit pkgs lib helpers; }
1721
else
1822
fnOrAttrs;
19-
in
20-
{
21-
inherit file;
22-
name = lib.strings.concatStringsSep "-" namespace;
23-
modules = lib.mapAttrsToList (name: module: { inherit name module; }) cases;
2423
};
2524

2625
# Recurse into all directories, extracting files as we find them.
27-
# This returns a list of { name; file; modules; } attrsets.
26+
# This returns a list of { name; file; cases; } attrsets.
2827
fetchTests =
2928
path: namespace:
3029
let
@@ -50,5 +49,4 @@ let
5049
builtins.concatLists
5150
];
5251
in
53-
# A list of the form [ { name = "..."; modules = [ /* test case modules */ ]; } ]
5452
fetchTests root [ ]

0 commit comments

Comments
 (0)