incus: 6.6.0 -> 6.7.0 (#356230)
[NixPkgs.git] / lib / tests / modules / class-check.nix
blob293fd4abd62862c526278e99aebfcb01c0f93270
1 { lib, ... }: {
2   options = {
3     sub = {
4       nixosOk = lib.mkOption {
5         type = lib.types.submoduleWith {
6           class = "nixos";
7           modules = [ ];
8         };
9       };
10       # Same but will have bad definition
11       nixosFail = lib.mkOption {
12         type = lib.types.submoduleWith {
13           class = "nixos";
14           modules = [ ];
15         };
16       };
18       mergeFail = lib.mkOption {
19         type = lib.types.submoduleWith {
20           class = "nixos";
21           modules = [ ];
22         };
23         default = { };
24       };
25     };
26   };
27   imports = [
28     {
29       options = {
30         sub = {
31           mergeFail = lib.mkOption {
32             type = lib.types.submoduleWith {
33               class = "darwin";
34               modules = [ ];
35             };
36           };
37         };
38       };
39     }
40   ];
41   config = {
42     _module.freeformType = lib.types.anything;
43     ok =
44       lib.evalModules {
45         class = "nixos";
46         modules = [
47           ./module-class-is-nixos.nix
48         ];
49       };
51     fail =
52       lib.evalModules {
53         class = "nixos";
54         modules = [
55           ./module-class-is-nixos.nix
56           ./module-class-is-darwin.nix
57         ];
58       };
60     fail-anon =
61       lib.evalModules {
62         class = "nixos";
63         modules = [
64           ./module-class-is-nixos.nix
65           { _file = "foo.nix#darwinModules.default";
66             _class = "darwin";
67             config = {};
68             imports = [];
69           }
70         ];
71       };
73     sub.nixosOk = { _class = "nixos"; };
74     sub.nixosFail = { imports = [ ./module-class-is-darwin.nix ]; };
75   };