fix(tests/submodules): use submodule.args instead of args directly

This commit is contained in:
Jaka Hudoklin 2019-03-20 20:59:17 +01:00
parent dad2915c44
commit 0c5e0d3a10
No known key found for this signature in database
GPG key ID: 6A08896BFD32BD95
3 changed files with 39 additions and 36 deletions

View file

@ -12,13 +12,13 @@ let
submodule = {name, ...}: { submodule = {name, ...}: {
imports = [ kubenix.modules.submodule ]; imports = [ kubenix.modules.submodule ];
options = { options.submodule.args = {
args.value = mkOption { value = mkOption {
description = "Submodule value"; description = "Submodule value";
type = types.str; type = types.str;
}; };
args.defaultValue = mkOption { defaultValue = mkOption {
description = "Submodule default value"; description = "Submodule default value";
type = types.str; type = types.str;
}; };
@ -32,27 +32,27 @@ in {
description = "Simple submodule test"; description = "Simple submodule test";
assertions = [{ assertions = [{
message = "should apply defaults by tag1"; message = "should apply defaults by tag1";
assertion = instance1.config.args.value == "value1"; assertion = instance1.config.submodule.args.value == "value1";
} { } {
message = "should apply defaults by tag2"; message = "should apply defaults by tag2";
assertion = instance2.config.args.value == "value2"; assertion = instance2.config.submodule.args.value == "value2";
} { } {
message = "should apply defaults by tag2"; message = "should apply defaults by tag2";
assertion = instance3.config.args.value == "value2"; assertion = instance3.config.submodule.args.value == "value2";
} { } {
message = "should apply defaults to all"; message = "should apply defaults to all";
assertion = assertion =
instance1.config.args.defaultValue == "value" && instance1.config.submodule.args.defaultValue == "value" &&
instance2.config.args.defaultValue == "value"; instance2.config.submodule.args.defaultValue == "value";
} { } {
message = "instance1 and instance3 should have value of default-value"; message = "instance1 and instance3 should have value of default-value";
assertion = instance3.config.args.defaultValue == "default-value"; assertion = instance3.config.submodule.args.defaultValue == "default-value";
} { } {
message = "should apply defaults by submodule name"; message = "should apply defaults by submodule name";
assertion = instance4.config.args.value == "value4"; assertion = instance4.config.submodule.args.value == "value4";
} { } {
message = "should apply defaults by custom condition"; message = "should apply defaults by custom condition";
assertion = instance5.config.args.defaultValue == "my-custom-value"; assertion = instance5.config.submodule.args.defaultValue == "my-custom-value";
}]; }];
}; };
@ -88,24 +88,24 @@ in {
submodule = { submodule = {
name = "submodule5"; name = "submodule5";
}; };
args.value = "custom-value"; submodule.args.value = "custom-value";
}]; }];
}]; }];
submodules.defaults = [{ submodules.defaults = [{
default.args.defaultValue = mkDefault "value"; default.submodule.args.defaultValue = mkDefault "value";
} { } {
tags = ["tag1"]; tags = ["tag1"];
default.args.value = mkDefault "value1"; default.submodule.args.value = mkDefault "value1";
} { } {
tags = ["tag2"]; tags = ["tag2"];
default.args.value = mkDefault "value2"; default.submodule.args.value = mkDefault "value2";
} { } {
name = "submodule4"; name = "submodule4";
default.args.value = mkDefault "value4"; default.submodule.args.value = mkDefault "value4";
} { } {
default = {config, ...}: { default = {config, ...}: {
args.defaultValue = mkIf (config.args.value == "custom-value") "my-custom-value"; submodule.args.defaultValue = mkIf (config.submodule.args.value == "custom-value") "my-custom-value";
}; };
}]; }];
@ -113,7 +113,7 @@ in {
submodules.instances.instance2.submodule = "submodule2"; submodules.instances.instance2.submodule = "submodule2";
submodules.instances.instance3 = { submodules.instances.instance3 = {
submodule = "submodule3"; submodule = "submodule3";
config.args.defaultValue = "default-value"; args.defaultValue = "default-value";
}; };
submodules.instances.instance4.submodule = "submodule4"; submodules.instances.instance4.submodule = "submodule4";
submodules.instances.instance5.submodule = "submodule5"; submodules.instances.instance5.submodule = "submodule5";

View file

@ -4,6 +4,7 @@ with lib;
let let
cfg = config.submodules.instances.instance; cfg = config.submodules.instances.instance;
args = cfg.config.submodule.args;
in { in {
imports = with kubenix.modules; [ test submodules ]; imports = with kubenix.modules; [ test submodules ];
@ -21,10 +22,10 @@ in {
assertion = cfg.config.submodule.name == "submodule"; assertion = cfg.config.submodule.name == "submodule";
} { } {
message = "Should have argument set"; message = "Should have argument set";
assertion = cfg.config.args.value == "test"; assertion = args.value == "test";
} { } {
message = "Should have submodule name set"; message = "Should have submodule name set";
assertion = cfg.config.args.name == "instance"; assertion = args.name == "instance";
} { } {
message = "should have tag set"; message = "should have tag set";
assertion = elem "tag" (cfg.config.submodule.tags); assertion = elem "tag" (cfg.config.submodule.tags);
@ -33,30 +34,32 @@ in {
submodules.propagate.enable = true; submodules.propagate.enable = true;
submodules.imports = [{ submodules.imports = [{
module = {name, ...}: { module = { submodule, ... }: {
imports = [ kubenix.modules.submodule ]; imports = [ kubenix.modules.submodule ];
config = {
submodule.name = "submodule"; options.submodule.args = {
submodule.tags = ["tag"]; name = mkOption {
}; description = "Submodule name";
options = { type = types.str;
args.value = mkOption { default = submodule.name;
};
value = mkOption {
description = "Submodule argument"; description = "Submodule argument";
type = types.str; type = types.str;
}; };
args.name = mkOption { };
description = "Submodule name";
type = types.str; config = {
default = name; submodule.name = "submodule";
}; submodule.tags = ["tag"];
}; };
}; };
}]; }];
submodules.instances.instance = { submodules.instances.instance = {
submodule = "submodule"; submodule = "submodule";
config = {name, ...}: { args = {
config.args.value = "test"; value = "test";
}; };
}; };
} }

View file

@ -21,8 +21,8 @@ in {
imports = with kubenix.modules; [ test submodules ]; imports = with kubenix.modules; [ test submodules ];
test = { test = {
name = "submodules-imports"; name = "submodules-versioning";
description = "Submodules imports tests"; description = "Submodules versioning test";
assertions = [{ assertions = [{
message = "should select exact version"; message = "should select exact version";
assertion = inst-exact.version == "1.1.0"; assertion = inst-exact.version == "1.1.0";