summary refs log tree commit diff
path: root/lib/tests/modules
diff options
context:
space:
mode:
authorSilvan Mosberger <contact@infinisil.com>2022-03-16 21:44:35 +0100
committerGitHub <noreply@github.com>2022-03-16 21:44:35 +0100
commitb97742c66ca497272c9fcbf1135a9f49155cc289 (patch)
tree43503f8681665ae0f9692fe3197df9b090f757c9 /lib/tests/modules
parent7666a39ed9fd40540e715d5fc243e18520be5e7d (diff)
parentc4b38702e59ea156924d3297e3f7ec80f7f816cb (diff)
downloadnixpkgs-b97742c66ca497272c9fcbf1135a9f49155cc289.tar
nixpkgs-b97742c66ca497272c9fcbf1135a9f49155cc289.tar.gz
nixpkgs-b97742c66ca497272c9fcbf1135a9f49155cc289.tar.bz2
nixpkgs-b97742c66ca497272c9fcbf1135a9f49155cc289.tar.lz
nixpkgs-b97742c66ca497272c9fcbf1135a9f49155cc289.tar.xz
nixpkgs-b97742c66ca497272c9fcbf1135a9f49155cc289.tar.zst
nixpkgs-b97742c66ca497272c9fcbf1135a9f49155cc289.zip
Merge pull request #156533 from hercules-ci/issue-146882-transparent-submodule-options
lib.modules: Let module declare options directly in bare submodule
Diffstat (limited to 'lib/tests/modules')
-rw-r--r--lib/tests/modules/declare-bare-submodule-deep-option-duplicate.nix10
-rw-r--r--lib/tests/modules/declare-bare-submodule-deep-option.nix10
-rw-r--r--lib/tests/modules/declare-bare-submodule-nested-option.nix19
-rw-r--r--lib/tests/modules/declare-bare-submodule.nix18
-rw-r--r--lib/tests/modules/declare-set.nix12
-rw-r--r--lib/tests/modules/define-bare-submodule-values.nix4
-rw-r--r--lib/tests/modules/define-shorthandOnlyDefinesConfig-true.nix1
7 files changed, 74 insertions, 0 deletions
diff --git a/lib/tests/modules/declare-bare-submodule-deep-option-duplicate.nix b/lib/tests/modules/declare-bare-submodule-deep-option-duplicate.nix
new file mode 100644
index 00000000000..06ad1f6e0a5
--- /dev/null
+++ b/lib/tests/modules/declare-bare-submodule-deep-option-duplicate.nix
@@ -0,0 +1,10 @@
+{ lib, ... }:
+let
+  inherit (lib) mkOption types;
+in
+{
+  options.bare-submodule.deep = mkOption {
+    type = types.int;
+    default = 2;
+  };
+}
diff --git a/lib/tests/modules/declare-bare-submodule-deep-option.nix b/lib/tests/modules/declare-bare-submodule-deep-option.nix
new file mode 100644
index 00000000000..06ad1f6e0a5
--- /dev/null
+++ b/lib/tests/modules/declare-bare-submodule-deep-option.nix
@@ -0,0 +1,10 @@
+{ lib, ... }:
+let
+  inherit (lib) mkOption types;
+in
+{
+  options.bare-submodule.deep = mkOption {
+    type = types.int;
+    default = 2;
+  };
+}
diff --git a/lib/tests/modules/declare-bare-submodule-nested-option.nix b/lib/tests/modules/declare-bare-submodule-nested-option.nix
new file mode 100644
index 00000000000..da125c84b25
--- /dev/null
+++ b/lib/tests/modules/declare-bare-submodule-nested-option.nix
@@ -0,0 +1,19 @@
+{ config, lib, ... }:
+let
+  inherit (lib) mkOption types;
+in
+{
+  options.bare-submodule = mkOption {
+    type = types.submoduleWith {
+      shorthandOnlyDefinesConfig = config.shorthandOnlyDefinesConfig;
+      modules = [
+        {
+          options.nested = mkOption {
+            type = types.int;
+            default = 1;
+          };
+        }
+      ];
+    };
+  };
+}
diff --git a/lib/tests/modules/declare-bare-submodule.nix b/lib/tests/modules/declare-bare-submodule.nix
new file mode 100644
index 00000000000..5402f4ff5a5
--- /dev/null
+++ b/lib/tests/modules/declare-bare-submodule.nix
@@ -0,0 +1,18 @@
+{ config, lib, ... }:
+let
+  inherit (lib) mkOption types;
+in
+{
+  options.bare-submodule = mkOption {
+    type = types.submoduleWith {
+      modules = [ ];
+      shorthandOnlyDefinesConfig = config.shorthandOnlyDefinesConfig;
+    };
+    default = {};
+  };
+
+  # config-dependent options: won't recommend, but useful for making this test parameterized
+  options.shorthandOnlyDefinesConfig = mkOption {
+    default = false;
+  };
+}
diff --git a/lib/tests/modules/declare-set.nix b/lib/tests/modules/declare-set.nix
new file mode 100644
index 00000000000..853418531a8
--- /dev/null
+++ b/lib/tests/modules/declare-set.nix
@@ -0,0 +1,12 @@
+{ lib, ... }:
+
+{
+  options.set = lib.mkOption {
+    default = { };
+    example = { a = 1; };
+    type = lib.types.attrsOf lib.types.int;
+    description = ''
+      Some descriptive text
+    '';
+  };
+}
diff --git a/lib/tests/modules/define-bare-submodule-values.nix b/lib/tests/modules/define-bare-submodule-values.nix
new file mode 100644
index 00000000000..00ede929ee6
--- /dev/null
+++ b/lib/tests/modules/define-bare-submodule-values.nix
@@ -0,0 +1,4 @@
+{
+  bare-submodule.nested = 42;
+  bare-submodule.deep = 420;
+}
diff --git a/lib/tests/modules/define-shorthandOnlyDefinesConfig-true.nix b/lib/tests/modules/define-shorthandOnlyDefinesConfig-true.nix
new file mode 100644
index 00000000000..bd3a73dce34
--- /dev/null
+++ b/lib/tests/modules/define-shorthandOnlyDefinesConfig-true.nix
@@ -0,0 +1 @@
+{ shorthandOnlyDefinesConfig = true; }