lib/tests/modules: Test functionTo submodule merging too

main
Robert Hensing 2 years ago
parent 062bc5e74a
commit 81a0a8be29
  1. 3
      lib/tests/modules.sh
  2. 16
      lib/tests/modules/functionTo/submodule-options.nix

@ -290,7 +290,8 @@ checkConfigOutput '^"a b"$' config.result ./functionTo/merging-list.nix
checkConfigError 'A definition for option .fun.\[function body\]. is not of type .string.. Definition values:\n\s*- In .*wrong-type.nix' config.result ./functionTo/wrong-type.nix
checkConfigOutput '^"b a"$' config.result ./functionTo/list-order.nix
checkConfigOutput '^"a c"$' config.result ./functionTo/merging-attrs.nix
checkConfigOutput '^"fun.\[function body\].a fun.\[function body\].b"$' config.result ./functionTo/submodule-options.nix
checkConfigOutput '^"a bee"$' config.result ./functionTo/submodule-options.nix
checkConfigOutput '^"fun.\[function body\].a fun.\[function body\].b"$' config.optionsResult ./functionTo/submodule-options.nix
# moduleType
checkConfigOutput '^"a b"$' config.resultFoo ./declare-variants.nix ./define-variant.nix

@ -10,7 +10,7 @@ in
options = {
fun = lib.mkOption {
type = types.functionTo (types.submodule {
options.a = lib.mkOption { };
options.a = lib.mkOption { default = "a"; };
});
};
};
@ -21,7 +21,7 @@ in
options = {
fun = lib.mkOption {
type = types.functionTo (types.submodule {
options.b = lib.mkOption { };
options.b = lib.mkOption { default = "b"; };
});
};
};
@ -30,6 +30,12 @@ in
options = {
result = lib.mkOption
{
type = types.str;
default = lib.concatStringsSep " " (lib.attrValues (config.fun (throw "shouldn't use input param")));
};
optionsResult = lib.mkOption
{
type = types.str;
default = lib.concatStringsSep " "
@ -50,10 +56,6 @@ in
config.fun = lib.mkMerge
[
(input: { inherit (input) a; })
(input: { inherit (input) b; })
(input: {
b = lib.mkForce input.c;
})
(input: { b = "bee"; })
];
}

Loading…
Cancel
Save