about summary refs log tree commit diff
path: root/lib/tests/modules
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2022-10-24 14:30:19 +0200
committerRobert Hensing <robert@roberthensing.nl>2023-05-06 18:29:03 +0200
commitb8ff2807a29861236a7ac3ed01c4565ba725e1b1 (patch)
tree6ec2d3559dc0e6c73e9a5fe725ce35614dd30ec5 /lib/tests/modules
parent3633bf98be70af326056ebc87a9adedd0e8a24c7 (diff)
downloadnixlib-b8ff2807a29861236a7ac3ed01c4565ba725e1b1.tar
nixlib-b8ff2807a29861236a7ac3ed01c4565ba725e1b1.tar.gz
nixlib-b8ff2807a29861236a7ac3ed01c4565ba725e1b1.tar.bz2
nixlib-b8ff2807a29861236a7ac3ed01c4565ba725e1b1.tar.lz
nixlib-b8ff2807a29861236a7ac3ed01c4565ba725e1b1.tar.xz
nixlib-b8ff2807a29861236a7ac3ed01c4565ba725e1b1.tar.zst
nixlib-b8ff2807a29861236a7ac3ed01c4565ba725e1b1.zip
lib/modules: Add class concept to check imports
This improves the error message when an incompatible module is
imported.
Diffstat (limited to 'lib/tests/modules')
-rw-r--r--lib/tests/modules/class-check.nix34
-rw-r--r--lib/tests/modules/module-class-is-darwin.nix4
-rw-r--r--lib/tests/modules/module-class-is-nixos.nix4
3 files changed, 42 insertions, 0 deletions
diff --git a/lib/tests/modules/class-check.nix b/lib/tests/modules/class-check.nix
new file mode 100644
index 000000000000..6e02f8c30920
--- /dev/null
+++ b/lib/tests/modules/class-check.nix
@@ -0,0 +1,34 @@
+{ lib, ... }: {
+  config = {
+    _module.freeformType = lib.types.anything;
+    ok =
+      lib.evalModules {
+        specialArgs.class = "nixos";
+        modules = [
+          ./module-class-is-nixos.nix
+        ];
+      };
+
+    fail =
+      lib.evalModules {
+        specialArgs.class = "nixos";
+        modules = [
+          ./module-class-is-nixos.nix
+          ./module-class-is-darwin.nix
+        ];
+      };
+
+    fail-anon =
+      lib.evalModules {
+        specialArgs.class = "nixos";
+        modules = [
+          ./module-class-is-nixos.nix
+          { _file = "foo.nix#darwinModules.default";
+            class = "darwin";
+            imports = [];
+          }
+        ];
+      };
+
+  };
+}
diff --git a/lib/tests/modules/module-class-is-darwin.nix b/lib/tests/modules/module-class-is-darwin.nix
new file mode 100644
index 000000000000..d8b60203f707
--- /dev/null
+++ b/lib/tests/modules/module-class-is-darwin.nix
@@ -0,0 +1,4 @@
+{
+  class = "darwin";
+  config = {};
+}
diff --git a/lib/tests/modules/module-class-is-nixos.nix b/lib/tests/modules/module-class-is-nixos.nix
new file mode 100644
index 000000000000..04b6e860e890
--- /dev/null
+++ b/lib/tests/modules/module-class-is-nixos.nix
@@ -0,0 +1,4 @@
+{
+  class = "nixos";
+  config = {};
+}