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 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 '^"b a"$' config.result ./functionTo/list-order.nix
checkConfigOutput '^"a c"$' config.result ./functionTo/merging-attrs.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 # moduleType
checkConfigOutput '^"a b"$' config.resultFoo ./declare-variants.nix ./define-variant.nix checkConfigOutput '^"a b"$' config.resultFoo ./declare-variants.nix ./define-variant.nix

@ -10,7 +10,7 @@ in
options = { options = {
fun = lib.mkOption { fun = lib.mkOption {
type = types.functionTo (types.submodule { type = types.functionTo (types.submodule {
options.a = lib.mkOption { }; options.a = lib.mkOption { default = "a"; };
}); });
}; };
}; };
@ -21,7 +21,7 @@ in
options = { options = {
fun = lib.mkOption { fun = lib.mkOption {
type = types.functionTo (types.submodule { type = types.functionTo (types.submodule {
options.b = lib.mkOption { }; options.b = lib.mkOption { default = "b"; };
}); });
}; };
}; };
@ -30,6 +30,12 @@ in
options = { options = {
result = lib.mkOption 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; type = types.str;
default = lib.concatStringsSep " " default = lib.concatStringsSep " "
@ -50,10 +56,6 @@ in
config.fun = lib.mkMerge config.fun = lib.mkMerge
[ [
(input: { inherit (input) a; }) (input: { b = "bee"; })
(input: { inherit (input) b; })
(input: {
b = lib.mkForce input.c;
})
]; ];
} }

Loading…
Cancel
Save