kubenix/tests/submodules/passthru.nix

62 lines
1.3 KiB
Nix
Raw Normal View History

{ name, config, lib, kubenix, ... }:
with lib;
let
submodule = { name, ... }: {
imports = [ kubenix.modules.submodule ];
config.submodule = {
name = "subm";
passthru.global.${name} = "true";
};
};
2021-05-13 17:27:08 -04:00
in
{
imports = with kubenix.modules; [ test submodules ];
options = {
global = mkOption {
description = "Global value";
type = types.attrs;
2021-05-13 17:27:08 -04:00
default = { };
};
};
config = {
test = {
name = "submodules-passthru";
description = "Submodules passthru test";
assertions = [{
message = "should passthru values if passthru enabled";
assertion = hasAttr "inst1" config.global && config.global.inst1 == "true";
2021-05-13 17:27:08 -04:00
}
{
message = "should not passthru values if passthru not enabled";
assertion = !(hasAttr "inst2" config.global);
}
{
message = "should passthru by default";
assertion = hasAttr "inst3" config.global && config.global.inst3 == "true";
}];
};
submodules.imports = [{
2021-05-13 17:27:08 -04:00
modules = [ submodule ];
}];
submodules.instances.inst1 = {
submodule = "subm";
passthru.enable = true;
};
submodules.instances.inst2 = {
submodule = "subm";
passthru.enable = false;
};
submodules.instances.inst3 = {
submodule = "subm";
};
};
}