kubenix/tests/submodules/passthru.nix

69 lines
1.4 KiB
Nix
Raw Normal View History

2022-04-02 12:40:35 -07:00
{
name,
config,
lib,
kubenix,
...
}:
with lib; let
submodule = {name, ...}: {
imports = [kubenix.modules.submodule];
config.submodule = {
name = "subm";
passthru.global.${name} = "true";
};
};
2022-04-02 12:40:35 -07:00
in {
imports = with kubenix.modules; [test submodules];
options = {
global = mkOption {
description = "Global value";
type = types.attrs;
2022-04-02 12:40:35 -07:00
default = {};
};
};
config = {
test = {
name = "submodules-passthru";
description = "Submodules passthru test";
2022-04-02 12:40:35 -07:00
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";
2022-04-02 12:40:35 -07:00
}
];
};
2022-04-02 12:40:35 -07:00
submodules.imports = [
{
modules = [submodule];
}
];
submodules.instances.inst1 = {
submodule = "subm";
passthru.enable = true;
};
submodules.instances.inst2 = {
submodule = "subm";
passthru.enable = false;
};
submodules.instances.inst3 = {
submodule = "subm";
};
};
}