lib/tests: Add tests for module-builtin assertions
This commit is contained in:
8
lib/tests/modules/assertions/enable-false.nix
Normal file
8
lib/tests/modules/assertions/enable-false.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
|
||||
_module.assertions.test = {
|
||||
enable = false;
|
||||
message = "Assertion failed";
|
||||
};
|
||||
|
||||
}
|
||||
17
lib/tests/modules/assertions/enable-lazy.nix
Normal file
17
lib/tests/modules/assertions/enable-lazy.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ lib, ... }: {
|
||||
|
||||
options.foo = lib.mkOption {
|
||||
default = true;
|
||||
};
|
||||
|
||||
options.bar = lib.mkOption {
|
||||
default = true;
|
||||
};
|
||||
|
||||
config._module.assertions.test = {
|
||||
enable = throw "enable evaluated";
|
||||
message = "Assertion failed";
|
||||
triggerPath = [ "foo" ];
|
||||
};
|
||||
|
||||
}
|
||||
23
lib/tests/modules/assertions/multi.nix
Normal file
23
lib/tests/modules/assertions/multi.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
|
||||
_module.assertions = {
|
||||
test1 = {
|
||||
enable = true;
|
||||
message = "Assertion 1 failed";
|
||||
};
|
||||
test2 = {
|
||||
enable = true;
|
||||
message = "Assertion 2 failed";
|
||||
};
|
||||
test3 = {
|
||||
enable = true;
|
||||
message = "Warning 3 failed";
|
||||
type = "warning";
|
||||
};
|
||||
test4 = {
|
||||
enable = true;
|
||||
message = "Warning 4 failed";
|
||||
type = "warning";
|
||||
};
|
||||
};
|
||||
}
|
||||
17
lib/tests/modules/assertions/non-cascading.nix
Normal file
17
lib/tests/modules/assertions/non-cascading.nix
Normal file
@@ -0,0 +1,17 @@
|
||||
{ lib, config, ... }: {
|
||||
|
||||
options.foo = lib.mkOption {
|
||||
default = true;
|
||||
};
|
||||
|
||||
options.bar = lib.mkOption {
|
||||
default = config.foo;
|
||||
};
|
||||
|
||||
config._module.assertions.foo = {
|
||||
enable = true;
|
||||
message = "Foo assertion";
|
||||
triggerPath = [ "foo" ];
|
||||
};
|
||||
|
||||
}
|
||||
6
lib/tests/modules/assertions/simple.nix
Normal file
6
lib/tests/modules/assertions/simple.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
_module.assertions.test = {
|
||||
enable = true;
|
||||
message = "Assertion failed";
|
||||
};
|
||||
}
|
||||
13
lib/tests/modules/assertions/submodule-attrsOf-attrsOf.nix
Normal file
13
lib/tests/modules/assertions/submodule-attrsOf-attrsOf.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ lib, ... }: {
|
||||
|
||||
options.foo = lib.mkOption {
|
||||
default = { bar.baz = {}; };
|
||||
type = lib.types.attrsOf (lib.types.attrsOf (lib.types.submodule {
|
||||
_module.assertions.test = {
|
||||
enable = true;
|
||||
message = "Assertion failed";
|
||||
};
|
||||
}));
|
||||
};
|
||||
|
||||
}
|
||||
13
lib/tests/modules/assertions/submodule-attrsOf.nix
Normal file
13
lib/tests/modules/assertions/submodule-attrsOf.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ lib, ... }: {
|
||||
|
||||
options.foo = lib.mkOption {
|
||||
default = { bar = {}; };
|
||||
type = lib.types.attrsOf (lib.types.submodule {
|
||||
_module.assertions.test = {
|
||||
enable = true;
|
||||
message = "Assertion failed";
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
}
|
||||
13
lib/tests/modules/assertions/submodule.nix
Normal file
13
lib/tests/modules/assertions/submodule.nix
Normal file
@@ -0,0 +1,13 @@
|
||||
{ lib, ... }: {
|
||||
|
||||
options.foo = lib.mkOption {
|
||||
default = {};
|
||||
type = lib.types.submodule {
|
||||
_module.assertions.test = {
|
||||
enable = true;
|
||||
message = "Assertion failed";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
15
lib/tests/modules/assertions/trigger-lazy.nix
Normal file
15
lib/tests/modules/assertions/trigger-lazy.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ lib, ... }: {
|
||||
options.foo = lib.mkOption {
|
||||
default = true;
|
||||
};
|
||||
|
||||
options.bar = lib.mkOption {
|
||||
default = true;
|
||||
};
|
||||
|
||||
config._module.assertions.test = {
|
||||
enable = true;
|
||||
message = "Assertion failed";
|
||||
triggerPath = [ "foo" ];
|
||||
};
|
||||
}
|
||||
18
lib/tests/modules/assertions/trigger-submodule.nix
Normal file
18
lib/tests/modules/assertions/trigger-submodule.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
{ lib, ... }: {
|
||||
|
||||
options.foo = lib.mkOption {
|
||||
default = { bar = {}; };
|
||||
type = lib.types.attrsOf (lib.types.submodule {
|
||||
options.baz = lib.mkOption {
|
||||
default = true;
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
config._module.assertions.test = {
|
||||
enable = true;
|
||||
message = "Assertion failed";
|
||||
triggerPath = [ "foo" "bar" "baz" ];
|
||||
};
|
||||
|
||||
}
|
||||
8
lib/tests/modules/assertions/underscore-attributes.nix
Normal file
8
lib/tests/modules/assertions/underscore-attributes.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
|
||||
_module.assertions._test = {
|
||||
enable = true;
|
||||
message = "Assertion failed";
|
||||
};
|
||||
|
||||
}
|
||||
9
lib/tests/modules/assertions/warning.nix
Normal file
9
lib/tests/modules/assertions/warning.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
|
||||
_module.assertions.test = {
|
||||
enable = true;
|
||||
type = "warning";
|
||||
message = "Warning message";
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user