diff options
Diffstat (limited to 'nixpkgs/lib/tests/modules/alias-with-priority-can-override.nix')
-rw-r--r-- | nixpkgs/lib/tests/modules/alias-with-priority-can-override.nix | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/nixpkgs/lib/tests/modules/alias-with-priority-can-override.nix b/nixpkgs/lib/tests/modules/alias-with-priority-can-override.nix new file mode 100644 index 00000000000..9a18c9d9f61 --- /dev/null +++ b/nixpkgs/lib/tests/modules/alias-with-priority-can-override.nix @@ -0,0 +1,55 @@ +# This is a test to show that mkAliasOptionModule sets the priority correctly +# for aliased options. +# +# This test shows that an alias with a high priority is able to override +# a non-aliased option. + +{ config, lib, ... }: + +with lib; + +{ + options = { + # A simple boolean option that can be enabled or disabled. + enable = lib.mkOption { + type = types.nullOr types.bool; + default = null; + example = true; + description = '' + Some descriptive text + ''; + }; + + # mkAliasOptionModule sets warnings, so this has to be defined. + warnings = mkOption { + internal = true; + default = []; + type = types.listOf types.str; + example = [ "The `foo' service is deprecated and will go away soon!" ]; + description = '' + This option allows modules to show warnings to users during + the evaluation of the system configuration. + ''; + }; + }; + + imports = [ + # Create an alias for the "enable" option. + (mkAliasOptionModule [ "enableAlias" ] [ "enable" ]) + + # Disable the aliased option with a high priority so it + # should override the next import. + ( { config, lib, ... }: + { + enableAlias = lib.mkForce false; + } + ) + + # Enable the normal (non-aliased) option. + ( { config, lib, ... }: + { + enable = true; + } + ) + ]; +} |