lib/test/modules.sh: Test deferredModule error location file
This commit is contained in:
parent
4746f6d03e
commit
38b7709a6f
2 changed files with 11 additions and 2 deletions
|
@ -194,8 +194,11 @@ checkConfigOutput '^"submodule"$' options.submodule.type.description ./declare-s
|
||||||
## Paths should be allowed as values and work as expected
|
## Paths should be allowed as values and work as expected
|
||||||
checkConfigOutput '^true$' config.submodule.enable ./declare-submoduleWith-path.nix
|
checkConfigOutput '^true$' config.submodule.enable ./declare-submoduleWith-path.nix
|
||||||
|
|
||||||
## Deferred module
|
## deferredModule
|
||||||
|
# default module is merged into nodes.foo
|
||||||
checkConfigOutput '"beta"' config.nodes.foo.settingsDict.c ./deferred-module.nix
|
checkConfigOutput '"beta"' config.nodes.foo.settingsDict.c ./deferred-module.nix
|
||||||
|
# errors from the default module are reported with accurate location
|
||||||
|
checkConfigError 'In `default from the-file-that-contains-the-bad-config.nix'\'': "bogus"' config.nodes.foo.bottom ./deferred-module.nix
|
||||||
|
|
||||||
# Check the file location information is propagated into submodules
|
# Check the file location information is propagated into submodules
|
||||||
checkConfigOutput the-file.nix config.submodule.internalFiles.0 ./submoduleFiles.nix
|
checkConfigOutput the-file.nix config.submodule.internalFiles.0 ./submoduleFiles.nix
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) types mkOption setDefaultModuleLocation;
|
inherit (lib) types mkOption setDefaultModuleLocation;
|
||||||
inherit (types) deferredModule lazyAttrsOf submodule str raw;
|
inherit (types) deferredModule lazyAttrsOf submodule str raw enum;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
@ -28,6 +28,7 @@ in
|
||||||
_file = "default-1.nix";
|
_file = "default-1.nix";
|
||||||
default = { config, ... }: {
|
default = { config, ... }: {
|
||||||
options.settingsDict = lib.mkOption { type = lazyAttrsOf str; default = {}; };
|
options.settingsDict = lib.mkOption { type = lazyAttrsOf str; default = {}; };
|
||||||
|
options.bottom = lib.mkOption { type = enum []; };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,6 +44,11 @@ in
|
||||||
nodes.foo.settingsDict.b = "beta";
|
nodes.foo.settingsDict.b = "beta";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
_file = "the-file-that-contains-the-bad-config.nix";
|
||||||
|
default.bottom = "bogus";
|
||||||
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
_file = "nodes-foo-c-is-a.nix";
|
_file = "nodes-foo-c-is-a.nix";
|
||||||
nodes.foo = { config, ... }: {
|
nodes.foo = { config, ... }: {
|
||||||
|
|
Loading…
Reference in a new issue