diff options
author | Silvan Mosberger <contact@infinisil.com> | 2021-01-26 22:30:07 +0100 |
---|---|---|
committer | Silvan Mosberger <contact@infinisil.com> | 2021-01-27 00:17:56 +0100 |
commit | c2f3556dc75ee09890c2cfc867cdb10df23accf6 (patch) | |
tree | 222adbe573628240363421c26ad2e7f5474260ed /lib/tests/modules | |
parent | e9101d4a3bc90dfaaa076d8ec00e5ed68e518f60 (diff) |
lib/tests: More functionTo tests
Diffstat (limited to 'lib/tests/modules')
-rw-r--r-- | lib/tests/modules/functionTo.nix | 29 | ||||
-rw-r--r-- | lib/tests/modules/functionTo/list-order.nix | 25 | ||||
-rw-r--r-- | lib/tests/modules/functionTo/merging-attrs.nix | 27 | ||||
-rw-r--r-- | lib/tests/modules/functionTo/merging-list.nix | 24 | ||||
-rw-r--r-- | lib/tests/modules/functionTo/trivial.nix | 17 | ||||
-rw-r--r-- | lib/tests/modules/functionTo/wrong-type.nix | 18 |
6 files changed, 111 insertions, 29 deletions
diff --git a/lib/tests/modules/functionTo.nix b/lib/tests/modules/functionTo.nix deleted file mode 100644 index 591d9a47f93dc..0000000000000 --- a/lib/tests/modules/functionTo.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ lib, config, ... }: - -with lib; - -{ - options = { - selector = mkOption { - default = _pkgs : []; - type = with types; functionTo (listOf str); - description = '' - Some descriptive text - ''; - }; - - result = mkOption { - type = types.str; - default = toString (config.selector { - a = "a"; - b = "b"; - c = "c"; - }); - }; - }; - - config = lib.mkMerge [ - { selector = pkgs: [ pkgs.a ]; } - { selector = pkgs: [ pkgs.b ]; } - ]; -} diff --git a/lib/tests/modules/functionTo/list-order.nix b/lib/tests/modules/functionTo/list-order.nix new file mode 100644 index 0000000000000..77a1a43a84f03 --- /dev/null +++ b/lib/tests/modules/functionTo/list-order.nix @@ -0,0 +1,25 @@ + +{ lib, config, ... }: +let + inherit (lib) types; +in { + options = { + fun = lib.mkOption { + type = types.functionTo (types.listOf types.str); + }; + + result = lib.mkOption { + type = types.str; + default = toString (config.fun { + a = "a"; + b = "b"; + c = "c"; + }); + }; + }; + + config.fun = lib.mkMerge [ + (input: lib.mkAfter [ input.a ]) + (input: [ input.b ]) + ]; +} diff --git a/lib/tests/modules/functionTo/merging-attrs.nix b/lib/tests/modules/functionTo/merging-attrs.nix new file mode 100644 index 0000000000000..97c015f928ab0 --- /dev/null +++ b/lib/tests/modules/functionTo/merging-attrs.nix @@ -0,0 +1,27 @@ +{ lib, config, ... }: +let + inherit (lib) types; +in { + options = { + fun = lib.mkOption { + type = types.functionTo (types.attrsOf types.str); + }; + + result = lib.mkOption { + type = types.str; + default = toString (lib.attrValues (config.fun { + a = "a"; + b = "b"; + c = "c"; + })); + }; + }; + + config.fun = lib.mkMerge [ + (input: { inherit (input) a; }) + (input: { inherit (input) b; }) + (input: { + b = lib.mkForce input.c; + }) + ]; +} diff --git a/lib/tests/modules/functionTo/merging-list.nix b/lib/tests/modules/functionTo/merging-list.nix new file mode 100644 index 0000000000000..15fcd2bdcc42d --- /dev/null +++ b/lib/tests/modules/functionTo/merging-list.nix @@ -0,0 +1,24 @@ +{ lib, config, ... }: +let + inherit (lib) types; +in { + options = { + fun = lib.mkOption { + type = types.functionTo (types.listOf types.str); + }; + + result = lib.mkOption { + type = types.str; + default = toString (config.fun { + a = "a"; + b = "b"; + c = "c"; + }); + }; + }; + + config.fun = lib.mkMerge [ + (input: [ input.a ]) + (input: [ input.b ]) + ]; +} diff --git a/lib/tests/modules/functionTo/trivial.nix b/lib/tests/modules/functionTo/trivial.nix new file mode 100644 index 0000000000000..0962a0cf893d3 --- /dev/null +++ b/lib/tests/modules/functionTo/trivial.nix @@ -0,0 +1,17 @@ +{ lib, config, ... }: +let + inherit (lib) types; +in { + options = { + fun = lib.mkOption { + type = types.functionTo types.str; + }; + + result = lib.mkOption { + type = types.str; + default = config.fun "input"; + }; + }; + + config.fun = input: "input is ${input}"; +} diff --git a/lib/tests/modules/functionTo/wrong-type.nix b/lib/tests/modules/functionTo/wrong-type.nix new file mode 100644 index 0000000000000..fd65b75088dae --- /dev/null +++ b/lib/tests/modules/functionTo/wrong-type.nix @@ -0,0 +1,18 @@ + +{ lib, config, ... }: +let + inherit (lib) types; +in { + options = { + fun = lib.mkOption { + type = types.functionTo types.str; + }; + + result = lib.mkOption { + type = types.str; + default = config.fun 0; + }; + }; + + config.fun = input: input + 1; +} |