about summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorSilvan Mosberger <contact@infinisil.com>2020-09-27 17:15:57 +0200
committerRobert Hensing <robert@roberthensing.nl>2022-06-14 17:01:58 +0200
commit79441600c28c755a302f1e78eceb3c452c3bc7c9 (patch)
tree56fb5c019c858ffdfdf83bc4251007e0d72a14ff /lib
parent492faa4f42b1789b2f0271fde9c7d89663e1ddc3 (diff)
downloadnixlib-79441600c28c755a302f1e78eceb3c452c3bc7c9.tar
nixlib-79441600c28c755a302f1e78eceb3c452c3bc7c9.tar.gz
nixlib-79441600c28c755a302f1e78eceb3c452c3bc7c9.tar.bz2
nixlib-79441600c28c755a302f1e78eceb3c452c3bc7c9.tar.lz
nixlib-79441600c28c755a302f1e78eceb3c452c3bc7c9.tar.xz
nixlib-79441600c28c755a302f1e78eceb3c452c3bc7c9.tar.zst
nixlib-79441600c28c755a302f1e78eceb3c452c3bc7c9.zip
lib/tests: Add submodule file propagation test
Diffstat (limited to 'lib')
-rwxr-xr-xlib/tests/modules.sh4
-rw-r--r--lib/tests/modules/submoduleFiles.nix21
2 files changed, 25 insertions, 0 deletions
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index 487fcd93641b..36af32ca89da 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -194,6 +194,10 @@ checkConfigOutput '^"submodule"$' options.submodule.type.description ./declare-s
 ## Paths should be allowed as values and work as expected
 checkConfigOutput '^true$' config.submodule.enable ./declare-submoduleWith-path.nix
 
+# Check the file location information is propagated into submodules
+checkConfigOutput the-file.nix config.submodule.internalFiles.0 ./submoduleFiles.nix
+
+
 # Check that disabledModules works recursively and correctly
 checkConfigOutput '^true$' config.enable ./disable-recursive/main.nix
 checkConfigOutput '^true$' config.enable ./disable-recursive/{main.nix,disable-foo.nix}
diff --git a/lib/tests/modules/submoduleFiles.nix b/lib/tests/modules/submoduleFiles.nix
new file mode 100644
index 000000000000..c0d9b2cef3e8
--- /dev/null
+++ b/lib/tests/modules/submoduleFiles.nix
@@ -0,0 +1,21 @@
+{ lib, ... }: {
+  options.submodule = lib.mkOption {
+    default = {};
+    type = lib.types.submoduleWith {
+      modules = [ ({ options, ... }: {
+        options.value = lib.mkOption {};
+
+        options.internalFiles = lib.mkOption {
+          default = options.value.files;
+        };
+      })];
+    };
+  };
+
+  imports = [
+    {
+      _file = "the-file.nix";
+      submodule.value = 10;
+    }
+  ];
+}