summary refs log tree commit diff
diff options
context:
space:
mode:
authorAnselm Schüler <mail@anselmschueler.com>2023-10-06 13:28:46 +0200
committerAnselm Schüler <mail@anselmschueler.com>2023-10-06 14:08:46 +0200
commitd27d38c13a8ec4e2a6adf314148986f2f7741a40 (patch)
treedc6e4fd2cb6def7d5496b8325d1c7268b2a1cd96
parent19241f5618f73974a3bd79853f5869c4f1dde537 (diff)
downloadnixpkgs-d27d38c13a8ec4e2a6adf314148986f2f7741a40.tar
nixpkgs-d27d38c13a8ec4e2a6adf314148986f2f7741a40.tar.gz
nixpkgs-d27d38c13a8ec4e2a6adf314148986f2f7741a40.tar.bz2
nixpkgs-d27d38c13a8ec4e2a6adf314148986f2f7741a40.tar.lz
nixpkgs-d27d38c13a8ec4e2a6adf314148986f2f7741a40.tar.xz
nixpkgs-d27d38c13a8ec4e2a6adf314148986f2f7741a40.tar.zst
nixpkgs-d27d38c13a8ec4e2a6adf314148986f2f7741a40.zip
lib/tests: add more tests for mkPackageOption
-rwxr-xr-xlib/tests/modules.sh6
-rw-r--r--lib/tests/modules/declare-mkPackageOption.nix26
2 files changed, 32 insertions, 0 deletions
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index 05c99e6de83..c2f1a426a34 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -227,8 +227,14 @@ checkConfigOutput '^false$' config.enableAlias ./alias-with-priority-can-overrid
 
 # Check mkPackageOption
 checkConfigOutput '^"hello"$' config.package.pname ./declare-mkPackageOption.nix
+checkConfigOutput '^"hello"$' config.namedPackage.pname ./declare-mkPackageOption.nix
+checkConfigOutput '^".*Hello.*"$' options.namedPackage.description ./declare-mkPackageOption.nix
+checkConfigOutput '^"hello"$' config.pathPackage.pname ./declare-mkPackageOption.nix
+checkConfigOutput '^"pkgs\.hello\.override \{ stdenv = pkgs\.clangStdenv; \}"$' options.packageWithExample.example.text ./declare-mkPackageOption.nix
+checkConfigOutput '^".*Example extra description\..*"$' options.packageWithExtraDescription.description ./declare-mkPackageOption.nix
 checkConfigError 'The option .undefinedPackage. is used but not defined' config.undefinedPackage ./declare-mkPackageOption.nix
 checkConfigOutput '^null$' config.nullablePackage ./declare-mkPackageOption.nix
+checkConfigOutput '^"null or package"$' options.nullablePackageWithDefault.type.description ./declare-mkPackageOption.nix
 
 # submoduleWith
 
diff --git a/lib/tests/modules/declare-mkPackageOption.nix b/lib/tests/modules/declare-mkPackageOption.nix
index 640b19a7bf2..37f070467b4 100644
--- a/lib/tests/modules/declare-mkPackageOption.nix
+++ b/lib/tests/modules/declare-mkPackageOption.nix
@@ -7,6 +7,28 @@ in {
   options = {
     package = lib.mkPackageOption pkgs "hello" { };
 
+    namedPackage = lib.mkPackageOption pkgs "Hello" {
+      default = [ "hello" ];
+    };
+
+    namedPackageSingletonDefault = lib.mkPackageOption pkgs "Hello" {
+      default = "hello";
+    };
+
+    pathPackage = lib.mkPackageOption pkgs [ "hello" ] { };
+
+    packageWithExample = lib.mkPackageOption pkgs "hello" {
+      example = "pkgs.hello.override { stdenv = pkgs.clangStdenv; }";
+    };
+
+    packageWithPathExample = lib.mkPackageOption pkgs "hello" {
+      example = [ "hello" ];
+    };
+
+    packageWithExtraDescription = lib.mkPackageOption pkgs "hello" {
+      extraDescription = "Example extra description.";
+    };
+
     undefinedPackage = lib.mkPackageOption pkgs "hello" {
       default = null;
     };
@@ -15,5 +37,9 @@ in {
       nullable = true;
       default = null;
     };
+
+    nullablePackageWithDefault = lib.mkPackageOption pkgs "hello" {
+      nullable = true;
+    };
   };
 }