Skip to content

Commit e05c6ea

Browse files
committed
rework tests
1 parent ecec672 commit e05c6ea

2 files changed

Lines changed: 55 additions & 35 deletions

File tree

wrapperModules/d/direnv/check.nix

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,6 @@
55

66
let
77
lib = pkgs.lib;
8-
# wrapperWithoutNixDirenv = self.wrappers.direnv.wrap {
9-
# inherit pkgs;
10-
# nix-direnv.enable = true;
11-
# };
12-
# wrapperWithNixDirenv = self.wrappers.direnv.wrap {
13-
# inherit pkgs;
14-
# nix-direnv.enable = true;
15-
# };
16-
# TODO: This seems dumb. Is there no better way to do this?
17-
# cfg = (wrapperWithNixDirenv.eval { }).config;
18-
# dotdir = "${wrapperWithNixDirenv}/${cfg.configDirname}";
19-
208
testUtils = ''
219
is_directory() {
2210
local path="$1"
@@ -40,25 +28,35 @@ let
4028
'';
4129

4230
runTest =
43-
name: attrs: script:
44-
pkgs.runCommand name attrs ''
31+
name: script:
32+
pkgs.runCommand name { } ''
4533
${testUtils}
4634
4735
${script}
4836
4937
touch $out
5038
'';
5139

52-
runCheck = name: (import ./checks/${name}) { inherit pkgs self runTest; };
40+
runTests =
41+
name: tests:
42+
runTest "test-group-${name}" ''
43+
# "${lib.concatStringsSep " " tests}"
44+
'';
45+
46+
runCheck =
47+
name:
48+
(import ./checks/${name}) {
49+
inherit
50+
pkgs
51+
self
52+
runTest
53+
runTests
54+
;
55+
};
5356
checks = lib.pipe ./checks [
5457
builtins.readDir
5558
(lib.filterAttrs (name: type: type == "regular"))
5659
(lib.mapAttrsToList (name: _: (runCheck name)))
5760
];
5861
in
59-
# TODO: We need to return a derivation.
60-
# Create a dummie derivation that references `checks` to
61-
# ensure they are evaluated.
62-
runTest "all-tests" { } ''
63-
# "${lib.concatStringsSep " " checks}"
64-
''
62+
runTests "direnv-all" checks

wrapperModules/d/direnv/checks/nix-direnv.nix

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,43 @@
22
pkgs,
33
self,
44
runTest,
5+
runTests,
56
}:
67

78
let
8-
wrapper = self.wrappers.direnv.wrap {
9-
inherit pkgs;
10-
nix-direnv.enable = true;
11-
};
12-
# TODO: This seems dumb. Is there no better way to do this?
13-
cfg = (wrapper.eval { }).config;
14-
dotdir = "${wrapper}/${cfg.configDirname}";
15-
16-
test = runTest "direnv-test" { } ''
17-
"${wrapper}/bin/direnv" --version | grep -q "${wrapper.version}"
18-
is_directory "${dotdir}"
19-
is_file "${dotdir}/lib/nix-direnv.sh"
20-
'';
9+
getDotdir =
10+
wrapper:
11+
let
12+
cfg = (wrapper.eval { }).config;
13+
dotdir = "${wrapper}/${cfg.configDirname}";
14+
in
15+
dotdir;
2116
in
22-
test
17+
runTests "nix-direnv" [
18+
(runTest "if nix-direnv is enabled then lib/nix-direnv.sh exists" (
19+
let
20+
wrapper = self.wrappers.direnv.wrap {
21+
inherit pkgs;
22+
nix-direnv.enable = true;
23+
};
24+
in
25+
''
26+
"${wrapper}/bin/direnv" --version | grep -q "${wrapper.version}"
27+
is_directory "${getDotdir wrapper}"
28+
is_file "${getDotdir wrapper}/lib/nix-direnv.sh"
29+
''
30+
))
31+
(runTest "if nix-direnv is diabled then lib/nix-direnv.sh does note exist" (
32+
let
33+
wrapper = self.wrappers.direnv.wrap {
34+
inherit pkgs;
35+
nix-direnv.enable = false;
36+
};
37+
in
38+
''
39+
"${wrapper}/bin/direnv" --version | grep -q "${wrapper.version}"
40+
is_directory "${getDotdir wrapper}"
41+
! is_file "${getDotdir wrapper}/lib/nix-direnv.sh"
42+
''
43+
))
44+
]

0 commit comments

Comments
 (0)