1{
2 lib,
3 nixos,
4 expect,
5 testers,
6}:
7let
8 node-forbiddenDependencies-fail = nixos (
9 { ... }:
10 {
11 system.forbiddenDependenciesRegexes = [ "-dev$" ];
12 environment.etc."dev-dependency" = {
13 text = "${expect.dev}";
14 };
15 documentation.enable = false;
16 fileSystems."/".device = "ignore-root-device";
17 boot.loader.grub.enable = false;
18 }
19 );
20 node-forbiddenDependencies-succeed = nixos (
21 { ... }:
22 {
23 system.forbiddenDependenciesRegexes = [ "-dev$" ];
24 system.extraDependencies = [ expect.dev ];
25 documentation.enable = false;
26 fileSystems."/".device = "ignore-root-device";
27 boot.loader.grub.enable = false;
28 }
29 );
30in
31lib.recurseIntoAttrs {
32 test-forbiddenDependencies-fail = testers.testBuildFailure node-forbiddenDependencies-fail.config.system.build.toplevel;
33 test-forbiddenDependencies-succeed =
34 node-forbiddenDependencies-succeed.config.system.build.toplevel;
35}