3
0
Fork 0
forked from mirrors/nixpkgs

lib/tests/modules: Test functionTo submodule merging too

This commit is contained in:
Robert Hensing 2022-05-13 09:09:16 +02:00
parent 062bc5e74a
commit 81a0a8be29
2 changed files with 11 additions and 8 deletions

View file

@ -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

View file

@ -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;
})
]; ];
} }